제출 #68228

#제출 시각아이디문제언어결과실행 시간메모리
68228top34051동기화 (JOI13_synchronization)C++17
40 / 100
8055 ms50060 KiB
//subtask 1 #include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define X first #define Y second const int maxn = 2e5 + 5; int n,m,q; vector<pii> way[maxn]; int open[maxn]; vector<pii> edge[maxn]; int res; int get(int x, int val) { int l = 0, r = edge[x].size()-1, mid, pos = -1; while(l<=r) { mid = (l+r)/2; if(edge[x][mid].X <= val) { pos = mid; l = mid+1; } else r = mid-1; } if(pos==-1) return 0; return min(val, edge[x][pos].Y); } void solve(int u, int last, int cur) { if(cur==0) return ; // printf("solve %d : %d\n",u,cur); res++; for(auto t : way[u]) { int v = t.X, id = t.Y; if(v==last) continue; solve(v,u,get(id,cur)); } } int main() { scanf("%d%d%d",&n,&m,&q); for(int i=1;i<n;i++) { int u,v; scanf("%d%d",&u,&v); way[u].push_back({v,i}); way[v].push_back({u,i}); } for(int i=1;i<=m;i++) { int x; scanf("%d",&x); if(!open[x]) open[x] = i; else { edge[x].push_back({open[x],i-1}); open[x] = 0; } } for(int x=1;x<n;x++) { if(open[x]) { edge[x].push_back({open[x],m}); } } for(int i=1;i<=q;i++) { int x; scanf("%d",&x); res = 0; solve(x,0,m); printf("%d\n",res); } }

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

synchronization.cpp: In function 'int main()':
synchronization.cpp:42:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d",&n,&m,&q);
  ~~~~~^~~~~~~~~~~~~~~~~~~
synchronization.cpp:44:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int u,v; scanf("%d%d",&u,&v);
            ~~~~~^~~~~~~~~~~~~~
synchronization.cpp:49:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int x; scanf("%d",&x);
          ~~~~~^~~~~~~~~
synchronization.cpp:62:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int x; scanf("%d",&x);
          ~~~~~^~~~~~~~~
#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...