제출 #209781

#제출 시각아이디문제언어결과실행 시간메모리
209781Alexa2001Pilot (NOI19_pilot)C++17
89 / 100
1028 ms107880 KiB
#include <bits/stdc++.h> using namespace std; /// 16:02 typedef long long ll; const int Nmax = 1e6 + 5; ll act = 0; vector<int> v[Nmax], w[Nmax]; int n, q; ll ans[Nmax]; int t[Nmax], sz[Nmax]; ll take2(int x) { return (ll)x*(x+1)/2; } int boss(int x) { if(x == t[x]) return x; return t[x] = boss(t[x]); } void unite(int x, int y) { x = boss(x); y = boss(y); act -= take2(sz[y]) + take2(sz[x]); if(sz[x] > sz[y]) swap(x, y); t[x] = y; sz[y] += sz[x]; act += take2(sz[y]); } void add(int x) { sz[x] = 1; t[x] = x; ++act; if(sz[x-1]) unite(x, x-1); if(sz[x+1]) unite(x, x+1); } const int bsize = 1 << 18; char buffer[bsize+2]; int cursor; static inline void init_read() { fread(buffer, 1, bsize, stdin), cursor = 0; } template<typename T> void read(T &x) { x = 0; while(!isdigit(buffer[cursor])) { ++cursor; if(cursor == bsize) init_read(); } while(isdigit(buffer[cursor])) { x = x * 10 + buffer[cursor] - '0'; ++cursor; if(cursor == bsize) init_read(); } } int main() { // freopen("input", "r", stdin); cin.sync_with_stdio(false); cin.tie(0); init_read(); read(n); read(q); int i; for(i=1; i<=n; ++i) { int x; read(x); w[x].push_back(i); } for(i=1; i<=q; ++i) { int x; read(x); v[x].push_back(i); } for(i=1; i<=Nmax-5; ++i) { for(auto it : w[i]) add(it); for(auto it : v[i]) ans[it] = act; } for(i=1; i<=q; ++i) printf("%lld\n", ans[i]); return 0; }

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

pilot.cpp: In function 'void init_read()':
pilot.cpp:59:35: warning: ignoring return value of 'size_t fread(void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     fread(buffer, 1, bsize, stdin), cursor = 0;
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
#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...