제출 #1277573

#제출 시각아이디문제언어결과실행 시간메모리
1277573nguyenhuuhongquan선물 (IOI25_souvenirs)C++20
3 / 100
12 ms400 KiB
#include <bits/stdc++.h> #include "souvenirs.h" using namespace std; #define double long double #define ull unsigned long long #define BIG __int128 #define fi first #define se second #define MASK(i) (1ll << i) #define BIT(x, i) (((x) >> (i)) & 1) #define sz(x) (int)(x).size() #define debug cout << "NO ERROR", exit(0); #define TASK "txt" #define IOS ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); const int MOD = 1e9 + 7; const long long INF = 1000000000000000000ll; const int LimN = 100 + 5; void maximize(int &x, int y){ x = max(x, y); } void minimize(int &x, int y){ x = min(x, y); } void add(int &x, int y){ x = (x % MOD + y % MOD) % MOD; } int cnt[LimN], p[LimN]; void buy_souvenirs(int n, long long P0){ memset(cnt, 0, sizeof cnt); p[0] = P0; for (int i = 1; i < n; i ++){ auto [v, r] = transaction(p[i - 1] - 1); if (sz(v) == 2 || r == 1) { cnt[n - 1] += sz(v) - 1; p[i] = p[i - 1] - 2; } else p[i] = p[i - 1] - 1; cnt[i] ++; } // for (int i = 1; i < n; i ++) cout << p[i] << "\n"; for (int i = 1; i < n; i ++){ for (int j = cnt[i] + 1; j <= i; j ++) transaction(p[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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...