A
Solved: 00:10 zkp
#include <bits/stdc++.h>
using namespace std;
long long a[200010],b[200010];
int main() {
int n,m;
long long ans=0,sum,t;
cin>>n;
for(int i=0;i<n;i++)
{
sum=0;
cin>>m;
for(int j=0;j<m;j++)scanf("%lli",&t),sum=max(sum,t);
a[i]=sum,b[i]=m;
}
sum=0;
for(int i=0;i<n;i++)sum=max(sum,a[i]);
for(int i=0;i<n;i++)ans+=(sum-a[i])*b[i];
cout<<ans<<endl;
return 0;
}
B
傻逼签到xD
#include <bits/stdc++.h>
using namespace std;
#define SZ(x) ((int)(x).size())
vector<string> a;
vector<pair<string, string> > t;
map<string, string> smap;
string const BEGIN = "\\begin{thebibliography}{99}";
string const END = "\\end{thebibliography}";
vector<string> solve(string s) {
vector<string> ret;
for (int i = 0; i + 6 < SZ(s); ++i)
if (s[i] == '\\' && s.substr(i, 6) == "\\cite{") {
int num = 0, canf = 0;
for (int j = i + 6; j < SZ(s); ++j)
if (s[j] == '}') {
canf = 1;
break;
} else
++num;
if (canf) {
ret.push_back(s.substr(i + 6, num));
i = i + 6 + num;
} else
i = SZ(s);
}
return ret;
}
int main() {
string str;
while (str != BEGIN) {
getline(cin, str);
auto vt = solve(str);
for (auto& s : vt)
a.push_back(s);
}
while (getline(cin, str)) {
if (str == END)
break;
int num = 0;
for (int j = 9; j < SZ(str); ++j)
if (str[j] == '}')
break;
else
++num;
string st = str.substr(9, num);
t.push_back(make_pair(st, str));
smap[st] = str;
}
assert(SZ(a) == SZ(t));
bool fans = 1;
for (int i = 0; i < SZ(t); ++i)
if (t[i].first != a[i]) {
fans = 0;
break;
}
if (fans)
puts("Correct");
else {
puts("Incorrect");
cout << BEGIN << '\n';
for (auto& s : a)
cout << smap[s] << '\n';
cout << END << '\n';
}
}
C
Unsolved
D
Solved: 00:32 zkp
构造好快啊
#include <bits/stdc++.h>
using namespace std;
vector<int>a[100010];
int ans[100010];
int main()
{
int n,m,x,y;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
if(n==1)
{
cout<<"NO"<<endl;
return 0;
}
x=-1,y=-1;
for(int i=1;i<=n;i++)
{
a[i].