제출 #248674

#제출 시각아이디문제언어결과실행 시간메모리
248674SamAndPilot (NOI19_pilot)C++17
26 / 100
56 ms5880 KiB
#include <bits/stdc++.h> using namespace std; #define m_p make_pair #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define fi first #define se second typedef long long ll; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); mt19937 rnf(2106); const int N = 1000006; struct ban { int x, i; }; bool operator<(const ban& a, const ban& b) { return a.x < b.x; } int n, m; ban a[N]; ban b[N]; int p[N], q[N]; bool c[N]; int fi(int x) { if (x == p[x]) return x; return p[x] = fi(p[x]); } ll yans; void kpc(int x, int y) { x = p[x]; y = p[y]; yans -= (q[x] * 1LL * (q[x] + 1)) / 2; yans -= (q[y] * 1LL * (q[y] + 1)) / 2; p[x] = y; q[y] += q[x]; yans += (q[y] * 1LL * (q[y] + 1)) / 2; } ll ans[N]; void solv() { scanf("%d%d", &n, &m); for (int i = 1; i <= n; ++i) { a[i].i = i; scanf("%d", &a[i].x); } sort(a + 1, a + n + 1); for (int i = 1; i <= m; ++i) { b[i].i = i; scanf("%d", &b[i].x); } sort(b + 1, b + m + 1); for (int i = 1; i <= n; ++i) { p[i] = i; } int j = 1; for (int i = 1; i <= m; ++i) { while (j <= n && a[j].x <= b[i].x) { q[a[j].i] = 1; ++yans; c[a[j].i] = true; if (c[a[j].i - 1]) kpc(a[j].i, a[j].i - 1); if (c[a[j].i + 1]) kpc(a[j].i, a[j].i + 1); ++j; } ans[b[i].i] = yans; } for (int i = 1; i <= m; ++i) printf("%lld\n", ans[i]); } int main() { #ifdef SOMETHING freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); #endif // SOMETHING solv(); return 0; } //while ((double)clock() / CLOCKS_PER_SEC <= 0.9){}

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

pilot.cpp: In function 'void solv()':
pilot.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &m);
     ~~~~~^~~~~~~~~~~~~~~~
pilot.cpp:55:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i].x);
         ~~~~~^~~~~~~~~~~~~~~
pilot.cpp:61:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &b[i].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...
#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...