Submission #408721

#TimeUsernameProblemLanguageResultExecution timeMemory
408721ly20Inside information (BOI21_servers)C++17
10 / 100
181 ms6056 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 121234; int ini[MAXN], fim[MAXN]; int seg[4 * MAXN]; void update(int cur, int ini, int fim, int a, int b, int val) { if(ini > b || fim < a) return; if(ini >= a && fim <= b) { seg[cur] += val; return; } int m = (ini + fim) / 2; int e = 2 * cur, d = 2 * cur + 1; update(e, ini, m, a, b, val); update(d, m + 1, fim, a, b, val); } int query(int cur, int ini, int fim, int id) { if(ini > id || fim < id) return 0; if(ini == fim) return seg[cur]; int m = (ini + fim) / 2; int e = 2 * cur, d = 2 * cur + 1; return query(e, ini, m, id) + query(d, m + 1, fim, id) + seg[cur]; } int main() { int n, k; scanf("%d %d", &n, &k); k += n - 1; for(int i = 1; i <= n; i++) { ini[i] = i; fim[i] = i; update(1, 1, n, ini[i], fim[i], 1); } for(int i = 0; i < k; i++) { char c; scanf(" %c", &c); if(c == 'S') { int a, b; scanf("%d %d", &a, &b); update(1, 1, n, ini[a], fim[a], -1); update(1, 1, n, ini[b], fim[b], -1); fim[a] = max(fim[a], fim[b]); fim[b] = fim[a]; ini[a] = min(ini[a], ini[b]); ini[b] = ini[a]; update(1, 1, n, ini[a], fim[a], 2); } else if(c == 'Q') { int a, b; scanf("%d %d", &a, &b); if(b >= ini[a] && b <= fim[a]) printf("yes\n"); else printf("no\n"); } else { int a; scanf("%d", &a); printf("%d\n", query(1, 1, n, a)); } } }

Compilation message (stderr)

servers.cpp: In function 'int main()':
servers.cpp:25:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |     scanf("%d %d", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~
servers.cpp:34:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |         scanf(" %c", &c);
      |         ~~~~~^~~~~~~~~~~
servers.cpp:37:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |             scanf("%d %d", &a, &b);
      |             ~~~~~^~~~~~~~~~~~~~~~~
servers.cpp:46:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 |             scanf("%d %d", &a, &b);
      |             ~~~~~^~~~~~~~~~~~~~~~~
servers.cpp:52:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |             scanf("%d", &a);
      |             ~~~~~^~~~~~~~~~
#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...
#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...