제출 #68499

#제출 시각아이디문제언어결과실행 시간메모리
68499BruteforcemanZalmoxis (BOI18_zalmoxis)C++11
0 / 100
1090 ms118172 KiB
#include <bits/stdc++.h> using namespace std; int a[1000010]; vector <int> v[1000010]; int alive[1000010]; struct data { int val, idx; data (int val, int idx) : val(val), idx(idx) {} data () {} bool operator < (data p) const { if(val == p.val) return idx < p.idx; return val > p.val; } }; int main(int argc, char const *argv[]) { int n, k; scanf("%d %d", &n, &k); for(int i = 1; i <= n; i++) { scanf("%d", &a[i]); alive[i] = 1; v[i].emplace_back(a[i]); } int sz = n; set <int> s; priority_queue <data> Q; for(int i = 1; i <= n; i++) { Q.emplace(a[i], i); s.insert(i); } while(sz < n + k) { while(alive[Q.top().idx] == 0) { Q.pop(); } int opt = Q.top().idx; Q.pop(); if(a[opt] == 30) break; int prev; auto it = s.lower_bound(opt); if(it == s.begin()) prev = -1; else prev = *(--it); if(prev == -1 || a[prev] > a[opt]) { v[opt].emplace_back(a[opt]); ++a[opt]; ++sz; Q.emplace(a[opt], opt); } else { alive[prev] = 0; s.erase(prev); ++a[opt]; Q.emplace(a[opt], opt); } } printf("%d\n", v[1].front()); exit(0); for(int i = 1; i <= n; i++) { vector <int> tmp; while(v[i].size() > 1 && sz < n + k) { if(v[i].back() > 0) { int x = v[i].back(); v[i].pop_back(); v[i].emplace_back(x - 1); v[i].emplace_back(x - 1); ++sz; } else { v[i].pop_back(); tmp.emplace_back(0); } } for(auto j : tmp) { v[i].emplace_back(j); } for(auto j : v[i]) { printf("%d ", j); } } printf("\n"); return 0; }

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

zalmoxis.cpp: In function 'int main(int, const char**)':
zalmoxis.cpp:20:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &n, &k);
     ~~~~~^~~~~~~~~~~~~~~~~
zalmoxis.cpp:22:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &a[i]);
         ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...