제출 #886500

#제출 시각아이디문제언어결과실행 시간메모리
886500vjudge1Gym Badges (NOI22_gymbadges)C++17
0 / 100
125 ms25164 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int INF = 1e9; /* struct segtree{ int n; vector<int> st, t, marked; vector<array<int, 2>> x; int base = 0; segtree(int _n){ n = _n; st.resize(4*n, 0); t.resize(4*n, 0); marked.resize(4*n, 0); x.resize(4*n, 0); } void update(int v, int l, int r, int val){ push(v, l, r); if(l>tr || r <tl) return; if(l>=tl && r<=tr){ st[v]+=val; t[v] =val; marked[v] = 1; } else{ int mid = (l+r) / 2; update(v*2, l, mid, val); update(v*2, mid, l, 1); } } } */ signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<int> l(n), x(n); vector<array<int, 2>> gh(n); for(int i=0; i<n; i++) cin >> gh[i][0]; for(int i=0; i<n; i++) cin >> gh[i][1]; sort(gh.begin(), gh.end(), [&](auto a, auto b){ return (a[0]<b[0]) || (a[0]==b[0] && a[1]>b[1]); }); for(int i=0; i<n; i++) x[i] = gh[i][0], l[i] = gh[i][1]; vector<int> all; all.push_back(0); auto check =[&](int ix, int iy, int sum){ if(sum<=l[ix]){ sum+=x[ix]; if(sum<=iy) return 1; return 0; } else return 0; }; for(int i=1; i<n; i++){ vector<int> all_new; int sum = 0, flag = 1; for(int j=0; j<all.size(); j++){ if(!flag){ all_new.push_back(all[j]); sum+=x[all[j]]; } else{ if(check(i, all[j], sum) == check(i, all[j], sum)){ if(l[i] < l[all[j]]){ all_new.push_back(i); sum+=x[i]; j--; flag = 0; } else{ all_new.push_back(all[j]); sum+=x[all[j]]; } } else if(check(i, all[j], sum)){ all_new.push_back(i); sum+=x[i]; j--; flag = 0; } else if(check(all[j], i, sum)){ all_new.push_back(all[j]); sum+=x[all[j]]; } } } all = all_new; } int sum = 0, ans = 0; for(int i=0; i<all.size(); i++){ if(sum<=l[all[i]]){ // cout<<x[all[i]]<<" "; ans++; sum+=x[all[i]]; } else break; } cout << ans; }

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

Main.cpp: In function 'int main()':
Main.cpp:75:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |         for(int j=0; j<all.size(); j++){
      |                      ~^~~~~~~~~~~
Main.cpp:109:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  109 |     for(int i=0; i<all.size(); i++){
      |                  ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...