Task: | Ryhmät |
Sender: | Yytsi |
Submission time: | 2025-09-27 20:23:57 +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.03 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:43: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] 43 | 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; 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"); } 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]++; } prefL[0] = prefR[0] = 0; // can't be this... 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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |
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 ... |