제출 #1164674

#제출 시각아이디문제언어결과실행 시간메모리
1164674Faisal_SaqibPotatoes and fertilizers (LMIO19_bulves)C++20
0 / 100
19 ms3400 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const ll N=2e5+10; ll f[N],p[N]; void solve() { ll n; cin>>n; for(int i=1;i<=n;i++) { // ferti potato cin>>f[i]>>p[i]; ll mn=min(f[i],p[i]); p[i]-=mn; f[i]-=mn; } // greedy queue<vector<int>> q; ll ans=0; for(int i=1;i<=n;i++) { while(q.size()) { auto it=q.front(); if(it[2]==0)break; q.pop(); if(it[0]<=p[i]) { ans+=1ll*(i-it[1])*it[0]; p[i]-=it[0]; } else { ans+=1ll*(i-it[1])*p[i]; it[0]-=p[i]; p[i]=0; q.push(it); break; } } if(p[i]>0) q.push({p[i],i,0}); while(q.size()) { auto it=q.front(); if(it[2]==1)break; q.pop(); if(it[0]<=f[i]) { ans+=1ll*(i-it[1])*it[0]; f[i]-=it[0]; // opop } else { ans+=1ll*(i-it[1])*f[i]; it[0]-=f[i]; q.push(it); f[i]=0; break; } } if(f[i]>0) q.push({f[i],i,1}); } cout<<ans<<endl; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t=1; // cin>>t; while(t--)solve(); return 0; }

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

bulves.cpp: In function 'void solve()':
bulves.cpp:44:36: warning: narrowing conversion of 'p[i]' from 'long long int' to 'int' [-Wnarrowing]
   44 |                         q.push({p[i],i,0});
      |                                 ~~~^
bulves.cpp:44:36: warning: narrowing conversion of 'p[i]' from 'long long int' to 'int' [-Wnarrowing]
bulves.cpp:66:36: warning: narrowing conversion of 'f[i]' from 'long long int' to 'int' [-Wnarrowing]
   66 |                         q.push({f[i],i,1});
      |                                 ~~~^
bulves.cpp:66:36: warning: narrowing conversion of 'f[i]' from 'long long int' to 'int' [-Wnarrowing]
#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...