제출 #377363

#제출 시각아이디문제언어결과실행 시간메모리
377363Thistle식물 비교 (IOI20_plants)C++14
0 / 100
1 ms492 KiB
#include "plants.h" #include <vector> #include<algorithm> #include<set> #include<iostream> #include<random> #include<queue> using namespace std; using ll=long long; using H=pair<ll, ll>; #define vec vector #define vi vec<ll> #define pb push_back #define all(a) (a).begin(),(a).end() #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++) #define rep(i,n) rng((i),0,(n)) #define siz(a) int((a).size()) int n; vec<vec<int>>e; void init(int k, std::vector<int> r) { //DAG kouchiku n=siz(r); rep(i,n) r.pb(r[i]); e.assign(n,vec<int>()); rep(i,n)rep(_,n){ if(i==_) continue; int j=_; if(j<i) j+=n; if(i+k<=j) continue; int t=j-i,mn,mx; if(j+k<=i+n){ mn=max(0,r[j]-t)+1; mx=k-1; } else{ int step=i+k-j-1; mx=k-1; mn=max(0,(r[j]-(k-(2*step+2))))+1; } if(r[i]<mn||mx<r[i]){ e[_].pb(i); } if(j+k<=i+n){ mx=t-1+max(0,r[j]-t); mn=0; } else{ int step=i+k-j-1; mn=0; mx=n-k+min(2*step, r[j]-1); } if(r[i]<mn||mx<r[i]){ e[i].pb(_); } } return; } int compare_plants(int x, int y) { x--;y--; vec<bool>used(n,0); queue<int>q; q.push(x); used[x]=1; while(!q.empty()){ int t=q.front();q.pop(); for(auto g:e[t]){ if(!used[g]){ used[g]=1; q.push(g); } } } if(used[y]) return -1; used=vec<bool>(n,0); used[y]=1; q.push(y); while(!q.empty()){ int t=q.front();q.pop(); for(auto g:e[t]){ if(!used[g]){ used[g]=1; q.push(g); } } } if(used[x]) return 1; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

plants.cpp: In function 'void init(int, std::vector<int>)':
plants.cpp:15:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   15 | #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
      |                            ^
plants.cpp:16:18: note: in expansion of macro 'rng'
   16 | #define rep(i,n) rng((i),0,(n))
      |                  ^~~
plants.cpp:24:2: note: in expansion of macro 'rep'
   24 |  rep(i,n) r.pb(r[i]);
      |  ^~~
plants.cpp:15:28: warning: unnecessary parentheses in declaration of 'i' [-Wparentheses]
   15 | #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
      |                            ^
plants.cpp:16:18: note: in expansion of macro 'rng'
   16 | #define rep(i,n) rng((i),0,(n))
      |                  ^~~
plants.cpp:28:2: note: in expansion of macro 'rep'
   28 |  rep(i,n)rep(_,n){
      |  ^~~
plants.cpp:15:28: warning: unnecessary parentheses in declaration of '_' [-Wparentheses]
   15 | #define rng(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
      |                            ^
plants.cpp:16:18: note: in expansion of macro 'rng'
   16 | #define rep(i,n) rng((i),0,(n))
      |                  ^~~
plants.cpp:28:10: note: in expansion of macro 'rep'
   28 |  rep(i,n)rep(_,n){
      |          ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...