Submission #1271767

#TimeUsernameProblemLanguageResultExecution timeMemory
1271767cbnk32_tuandungPod starim krovovima (COCI20_psk)C++20
50 / 50
1 ms328 KiB
/* _ _ ___ __ ___ ___ _ _ ___ __ ___ _ _ ___ ___ __ _____ _ _ ___ */ /* | || | /_\ \ / / / __|/ _ \| \| |/ __| \ \ / /_\ | | | |/ _ \ / __| \ \ / / _ \| \| |/ __| */ /* | __ |/ _ \ V / \__ \ (_) | .` | (_ | \ V / _ \ | |_| | (_) | (__ \ V / (_) | .` | (_ | */ /* |_||_/_/_\_\_|___|___/\___/|_|\_|\___| \_/_/_\_\ _\___/ \___/ \___| _ \_/_\___/|_|\_|\___| ___ */ /* | \| __| |_ _| || | /_\ \ / / | \ / _ \_ _| | \/ | __| \| | || | | \/ |/ _ \| \| |/ __| */ /* | |) | _| | | | __ |/ _ \ V / | |) | (_) | | | |\/| | _|| .` | __ | | |\/| | (_) | .` | (_ | */ /* |___/|___| |_| |_||_/_/ \_\_| |___/ \___/___| |_| |_|___|_|\_|_||_| |_| |_|\___/|_|\_|\___| */ #include <bits/stdc++.h> using namespace std; struct ly { int remain,maxVol,idx; }; ly a[1009]; int res[1009]; int n; bool cmp(ly nguyen, ly khanh) { if (nguyen.maxVol == khanh.remain) { if (nguyen.remain == khanh.remain) { return nguyen.idx < khanh.idx; } else { return nguyen.remain < khanh.remain; } } else { return nguyen.maxVol < khanh.maxVol; } } int main() { ios_base::sync_with_stdio(1+1==3); cout.tie(nullptr); cin.tie(nullptr); cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i].remain >> a[i].maxVol; a[i].idx = i; } sort(a+1,a+1+n,cmp); // cout << "SORTED\n"; // for (int i = 1; i <= n; ++i) { // cout << a[i].idx << ". " << a[i].remain << " " << a[i].maxVol << endl; // } int cnt=0; for (int i = 1; i <= n; ++i) { for (int j=n;j>i;--j) { int oldAJ = a[j].remain; a[j].remain = min(a[j].maxVol,a[j].remain+min(a[j].maxVol-a[j].remain,a[i].remain)); a[i].remain -= a[j].remain-oldAJ; if (a[i].remain == 0) { break; } } if (a[i].remain == 0) { ++cnt; } res[a[i].idx]=a[i].remain; // cout << a[i].remain << " "; } // for (int i = 1; i <= n; ++i) { // if (a[i].remain == 0) { // ++cnt; // } // else { // for (int j = n; j > i; --j) { // if (i==n) break; // int oldAJ = a[j].remain; // a[j].remain = min(a[j].maxVol,a[j].remain+min(a[j].maxVol-a[j].remain,a[i].remain)); // a[i].remain -= a[j].remain-oldAJ; // if (a[i].remain == 0) { // break; // } // } // if (a[i].remain == 0) { // ++cnt; // } // } // res[a[i].idx]=a[i].remain; // } cout << cnt << "\n"; for (int i = 1; i <= n; ++i) { cout << res[i] << " "; } } /* Như một siêu sao người Thái Bình đã từng nói: "Bằng một niềm tin thôi, Đi đi rồi sẽ tới Đời này được bao lâu? "thôi để mai" là đến khi nào?". */
#Verdict Execution timeMemoryGrader output
Fetching results...