Submission #585184

#TimeUsernameProblemLanguageResultExecution timeMemory
585184TimDeeGame (IOI14_game)C++14
0 / 100
1 ms212 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; #define forn(i,n) for (int i=0; i<n; ++i) vector<vector<int>> cnt; struct DSU { vector<int> p; vector<int> r; vector<int> q; vector<int> o; DSU(int n) { p.assign(n,0); r.assign(n,0); forn(i,n) p[i]=i; q.assign(n,n-1); o.assign(n,0); } int get(int i) { return p[i]==i ? i : get(p[i]); } void uni(int a, int b) { a=get(a); b=get(b); if (a==b) return; if (r[a]==r[b]) r[a]++; if (r[a]>r[b]) { swap(a,b); } p[a]=b; q[b]+=q[a]-2; o[b]+=o[a]-1; forn(i,cnt.size()) { if (i==a || i==b) continue; cnt[i][b]+=cnt[i][a]; cnt[b][i]+=cnt[a][i]; } } void substract(int a, int b) { a=get(a); b=get(b); --q[a]; --q[b]; } int getq(int a) { a=get(a); return q[a]; } int geto(int a) { a=get(a); return o[a]; } void inco(int a) { a=get(a); o[a]++; } }; DSU dsu(0); int q; int n; void initialize(int N) { n=N; DSU paiu(n); dsu=paiu; q=n*(n-1)/2; cnt.resize(n); forn(i,n) forn(j,n) cnt[i].push_back(i!=j); //cout<<"!"<<dsu.p.size()<<'\n'; } int hasEdge(int u, int v) { if (cnt[u][v]>1 && cnt[v][u]>1) { --cnt[u][v], --cnt[v][u]; return 0; } else { dsu.uni(u,v); return 1; } }

Compilation message (stderr)

game.cpp: In member function 'void DSU::uni(int, int)':
game.cpp:5:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    5 | #define forn(i,n) for (int i=0; i<n; ++i)
......
   46 |         forn(i,cnt.size()) {
      |              ~~~~~~~~~~~~         
game.cpp:46:9: note: in expansion of macro 'forn'
   46 |         forn(i,cnt.size()) {
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...