| Task: | Ryhmät |
| Sender: | Yytsi |
| Submission time: | 2025-09-28 12:12:41 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #6 | ACCEPTED | 0.01 s | 2 | details |
| #7 | ACCEPTED | 0.03 s | 2 | details |
| #8 | ACCEPTED | 0.08 s | 2 | details |
| #9 | ACCEPTED | 0.00 s | 2, 3 | details |
| #10 | ACCEPTED | 0.03 s | 3 | details |
| #11 | WRONG ANSWER | 0.03 s | 3 | details |
| #12 | WRONG ANSWER | 0.04 s | 3 | details |
| #13 | ACCEPTED | 0.03 s | 3 | details |
| #14 | ACCEPTED | 0.05 s | 3 | details |
| #15 | ACCEPTED | 0.05 s | 3 | details |
| #16 | ACCEPTED | 0.04 s | 3 | details |
Compiler report
input/code.cpp: In function 'void solve()':
input/code.cpp:44:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
44 | for (int i = 0; i < blockSizes.size(); i++) {
| ~~^~~~~~~~~~~~~~~~~~~Code
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#ifdef LOCAL
#include "debug.hpp"
#else
#define debug(...) 0xffff
#endif
#define N 101010
int countOfL[N], countOfR[N], prefL[N], prefR[N];
int n;
void solve() {
int m; cin>>m;
if (m == 0) return void(cout << "YES\n");
vector<int> groupSizeDemands(m);
for (int i = 0; i < m; i++) cin>>groupSizeDemands[i];
sort(groupSizeDemands.begin(), groupSizeDemands.end());
ll reqSum = 0, deficientKids = 0;
vector<pair<ll, ll>> blockSizes;
pair<ll, ll> curBlock = {groupSizeDemands[0], 1}; // sum, cnt
for (int i = 1; i < m; i++) {
ll demand = groupSizeDemands[i];
if (demand != curBlock.first) {
// add block
blockSizes.push_back(curBlock);
curBlock = {demand, 1};
continue;
}
// same demand so stack this
curBlock.second++;
}
// for (auto bl : blockSizes) cout<<bl.first<<" "<<bl.second<<"\n";
if (curBlock.second != 0) blockSizes.push_back(curBlock);
for (int i = 0; i < blockSizes.size(); i++) {
ll needSum = blockSizes[i].first;
ll blockCnt = blockSizes[i].second;
// considering only up to before this block (needSum - 1)!
deficientKids = min(deficientKids, reqSum - prefR[needSum - 1]);
reqSum += blockCnt * needSum;
// cout<<needSum<<" "<<deficientKids<<" "<<reqSum<<"\n";
// if (reqSum > prefL[needSum]) return void(cout << "NO\n");
if (reqSum - prefL[needSum] > deficientKids) return void(cout << "NO\n");
deficientKids = min(deficientKids, reqSum - prefR[needSum]);
if (needSum < n && (reqSum - prefL[needSum + 1] > deficientKids)) return void(cout << "NO\n");
}
cout << "YES\n";
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int t;
cin>>n>>t;
for (int i = 0; i < n; i++) {
int a, b; cin>>a>>b;
countOfL[a]++;
countOfR[b]++;
}
for (int i = 1; i <= n; i++) {
prefL[i] = prefL[i-1] + countOfL[i];
prefR[i] = prefR[i-1] + countOfR[i];
}
while (t--) {
solve();
}
}Test details
Test 1
Group: 1, 2, 3
Verdict: WRONG ANSWER
| input |
|---|
| 100 100 10 10 10 10 6 9 6 8 ... |
| correct output |
|---|
| YES YES YES NO YES ... |
| user output |
|---|
| YES YES YES NO YES ... Truncated |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100 100 9 9 6 10 8 10 8 8 ... |
| correct output |
|---|
| NO YES NO YES NO ... |
| user output |
|---|
| NO YES NO YES NO ... Truncated |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100 100 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100 100 100 100 100 100 100 100 100 100 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100 100 4 9 3 8 7 9 7 9 ... |
| correct output |
|---|
| NO NO NO NO NO ... |
| user output |
|---|
| NO NO NO NO NO ... Truncated |
Test 6
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 9 10 2 5 10 10 5 5 ... |
| correct output |
|---|
| YES YES YES YES NO ... |
| user output |
|---|
| YES YES YES YES NO ... Truncated |
Test 7
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 5 7 9 9 3 7 8 10 ... |
| correct output |
|---|
| YES NO NO YES YES ... |
| user output |
|---|
| YES NO NO YES YES ... Truncated |
Test 8
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 1 1 1 1 1 1 1 1 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 9
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 10
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000 774 778 363 852 309 668 261 459 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 11
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 1000 1233 1914 901 3963 1277 4293 1083 1599 ... |
| correct output |
|---|
| NO NO YES NO NO ... |
| user output |
|---|
| NO NO YES NO NO ... Truncated |
Test 12
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 1000 1970 8631 4606 5797 6317 8162 8204 8789 ... |
| correct output |
|---|
| NO NO NO NO NO ... |
| user output |
|---|
| NO NO NO NO NO ... Truncated |
Test 13
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 14
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 1 100000 1 100000 1 100000 1 100000 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
Test 15
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 80971 98445 93046 96043 74840 94035 95931 96609 ... |
| correct output |
|---|
| NO NO NO NO NO ... |
| user output |
|---|
| NO NO NO NO NO ... Truncated |
Test 16
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 10000 6481 14350 69129 87600 6217 16462 4387 16625 ... |
| correct output |
|---|
| YES YES YES YES YES ... |
| user output |
|---|
| YES YES YES YES YES ... Truncated |
