제출 #612121

#제출 시각아이디문제언어결과실행 시간메모리
612121M_W모임들 (IOI18_meetings)C++17
컴파일 에러
0 ms0 KiB
#include <cstdio> #include <cstdlib> #include <vector> namespace { int read_int() { int x; if (scanf("%d", &x) != 1) { fprintf(stderr, "Error while reading input\n"); exit(1); } return x; } } // namespace #include <bits/stdc++.h> #define ii pair<long long, long long> using namespace std; long long t[750001 << 2]; vector<int> H; int last = 0, N; vector<ii> Q[750001]; long long query(int v, int tl, int tr, int l, int r){ if(l > r) return -1; if(tl == l && tr == r) return t[v]; int tm = (tl + tr) >> 1; return max(query(v * 2, tl, tm, l, min(r, tm)), query(v * 2 + 1, tm + 1, tr, max(l, tm + 1), r)); } void ins(int v, int tl, int tr, int pos, int val){ if(tl == pos && tr == pos){ t[v] = val; return; } int tm = (tl + tr) >> 1; if(pos <= tm) ins(v * 2, tl, tm, pos, val); else ins(v * 2 + 1, tm + 1, tr, pos, val); t[v] = max(t[v * 2], t[v * 2 + 1]); } vector<long long> minimum_costs(vector<int> H_tmp, vector<int> L, vector<int> R){ H = H_tmp; N = H.size(); for(int i = 0; i < L.size(); i++) Q[R[i]].push_back({L[i], i}); vector<long long> ans(200001); for(int i = 0; i < N; i++){ if(H[i] == 2){ ins(1, 0, N, last, i - last); last = i + 1; } for(auto x : Q[i]){ long long val = query(1, 0, N, x.first + 1, i + 1); val = max(val, ((i - max(last * 1ll, (x.first + 1) * 1ll)) * 1ll) + (H[i] == 2 ? 0 : 1ll)); // printf(">> %d %lld\n", i - x.first + 1, val); ans[x.second] = ((i - x.first + 1 - val) * 2ll) + (val * 1ll); } } ans.resize(L.size()); return ans; } int main() { int N = read_int(); int Q = read_int(); std::vector<int> H(N); for (int i = 0; i < N; ++i) { H[i] = read_int(); } std::vector<int> L(Q), R(Q); for (int j = 0; j < Q; ++j) { L[j] = read_int(); R[j] = read_int(); } std::vector<long long> C = minimum_costs(H, L, R); for (size_t j = 0; j < C.size(); ++j) { printf("%lld\n", C[j]); } return 0; }

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

meetings.cpp: In function 'std::vector<long long int> minimum_costs(std::vector<int>, std::vector<int>, std::vector<int>)':
meetings.cpp:48:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for(int i = 0; i < L.size(); i++) Q[R[i]].push_back({L[i], i});
      |                    ~~^~~~~~~~~~
/usr/bin/ld: /tmp/ccKqU46b.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc2dFTlc.o:meetings.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status