# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
209335 | 2020-03-13T20:12:30 Z | papa | Pod starim krovovima (COCI20_psk) | C++14 | 6 ms | 376 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; //ideja da sumu sve tecnosti mozemo da smestimo u sto manje //casa //sortiramo opadajuce i onda smestamo dokle treba int n; ll a[1005]; ll b[1005]; vector<pair<ll,int> > ve; ll res[1005]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cerr.tie(0); cin >> n; ll tot = 0; for(int i=1;i<=n;i++) { cin >> a[i] >> b[i]; tot+=a[i]; ve.push_back({b[i],i}); } sort(ve.begin(),ve.end()); ll temp = tot; int doo; for(int i=n-1;i>=0;i--) { ll x = ve[i].first; if(x >= temp) { doo = i; break; } else { temp-=x; } } cout << n-(n-1-doo+1) << "\n"; for(int i=n-1;i>=doo;i--) { int ind = ve[i].second; res[ind] = min(tot,ve[i].first); tot-=ve[i].first; } for(int i=1;i<=n;i++) cout << res[i] << " "; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 376 KB | Output is correct |
2 | Correct | 5 ms | 376 KB | Output is correct |
3 | Correct | 5 ms | 376 KB | Output is correct |
4 | Correct | 5 ms | 376 KB | Output is correct |
5 | Correct | 5 ms | 376 KB | Output is correct |
6 | Correct | 5 ms | 376 KB | Output is correct |
7 | Correct | 5 ms | 376 KB | Output is correct |
8 | Correct | 5 ms | 376 KB | Output is correct |
9 | Correct | 5 ms | 376 KB | Output is correct |
10 | Correct | 6 ms | 376 KB | Output is correct |