Submission #1322833

#TimeUsernameProblemLanguageResultExecution timeMemory
1322833yesimazixBodyguards (CEOI10_bodyguards)C++20
50 / 100
359 ms327680 KiB
#include <bits/stdc++.h>

#define int        long long
#define ll        long long
#define all(x)     x.begin(), x.end()
#define allr(x)     x.rbegin(), x.rend()
#define sz          size()
#define yes      "YES"
#define no      "NO"
#define IOI      ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define pb      push_back
#define pf      push_front
#define mkp      make_pair
#define S      second
#define F      first

using namespace std;

void freeopen () {
    freopen("A.in", "r", stdin);
    freopen("A.out", "w", stdout);
}


const int N = 2e5 + 10;
const int NN = 1e5 + 5;
const int Mod = 1e9 + 7;
const ll inf = 1e18;
const double pi = 3.14159265358979323846;


ll mod (ll x) {
    return (x % Mod + Mod) % Mod;
}

ll bp(ll a, int b) {
    ll res = 1;
    while(b) {
        if (b % 2) {
            res = mod(res * a);
        }
        a = mod(a * a);
        b >>= 1LL;
    }
    return res;
}

ll gcd(ll a, ll b){
  while(b) {
    a %= b; 
    swap(a, b);
  }
  return a; 
}

ll lcm(ll a, ll b){
  return a / gcd(a, b) * b;  
}

int n, m ,k;

void legenda_ne_umret() {
    int col_qn;
    cin >> col_qn;
    vector<int> qn, qm; 
    for (int i = 1; i <= col_qn; i++) {
        int x, y;
        cin >> x >> y;
        for (int j = 1; j <= y; j++) {
            qn.push_back(x);
        }
    }
    int col_qm; 
    cin >> col_qm;
    for (int i = 1; i <= col_qm; i++) {
        int x, y;
        cin >> x >> y;
        for (int j = 1; j <= y; j++) {
            qm.push_back(x);
        }
    }
    sort(allr(qn));
    sort(allr(qm));
    int sumn = 0, summ = 0;
    for (auto i : qn) sumn += i;
    for (auto j : qm) summ += j;
    if (summ != sumn) {
        cout << 0;
        return;
    }
    vector<int> col(qm.sz + 4);
    int pref = 0;
    for (int i = 1; i <= qn.sz; i++) {
        int sum = 0;
        for (auto val : qm) {
            sum += min(i, val);
        }
        pref += qn[i - 1];
        if (pref > sum) {
            cout << 0;
            return;
        }
    }
    cout << 1;
}



signed main() {
    IOI;
    // freeopen();
    ///////////////////////////////////////////
    int t = 1;
    // cin >> t;
    for (int i = 1; i <= t; i++) {
        // cout << "Case " << i << ": ";
        legenda_ne_umret();
        cout << '\n';
    }
}

Compilation message (stderr)

bodyguards.cpp: In function 'void freeopen()':
bodyguards.cpp:20:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   20 |     freopen("A.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~
bodyguards.cpp:21:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |     freopen("A.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
#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...
#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...