| Task: | Järjestys |
| Sender: | Grez |
| Submission time: | 2025-09-07 22:41:25 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 70 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 10 |
| #2 | ACCEPTED | 10 |
| #3 | ACCEPTED | 10 |
| #4 | ACCEPTED | 40 |
| #5 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #2 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #3 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #4 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #5 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #6 | ACCEPTED | 0.00 s | 1, 2, 4, 5 | details |
| #7 | ACCEPTED | 0.00 s | 1, 3, 4, 5 | details |
| #8 | ACCEPTED | 0.00 s | 1, 4, 5 | details |
| #9 | ACCEPTED | 0.01 s | 2, 4, 5 | details |
| #10 | ACCEPTED | 0.02 s | 3, 4, 5 | details |
| #11 | ACCEPTED | 0.01 s | 4, 5 | details |
| #12 | ACCEPTED | 0.02 s | 4, 5 | details |
| #13 | ACCEPTED | 0.01 s | 4, 5 | details |
| #14 | ACCEPTED | 0.01 s | 4, 5 | details |
| #15 | ACCEPTED | 0.04 s | 2, 5 | details |
| #16 | ACCEPTED | 0.17 s | 3, 5 | details |
| #17 | ACCEPTED | 0.13 s | 5 | details |
| #18 | ACCEPTED | 0.11 s | 5 | details |
| #19 | ACCEPTED | 0.12 s | 5 | details |
| #20 | ACCEPTED | 0.13 s | 5 | details |
| #21 | TIME LIMIT EXCEEDED | -- | 5 | details |
| #22 | ACCEPTED | 0.22 s | 5 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:108:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
108 | scanf("%d",&count);
| ~~~~~^~~~~~~~~~~~~
input/code.cpp:110:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
110 | scanf("%d",&le);
| ~~~~~^~~~~~~~~~
input/code.cpp:112:30: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
112 | scanf("%d %d",&byX[i].x, &byX[i].y);
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Code
#include <iostream>
#include <list>
#include <algorithm>
#include <climits>
using namespace std;
struct myPair {
int x;
int y;
int ix;
};
myPair byX[500];
myPair byY[500];
bool used[500];
int ord[500];
int le;
bool Xsorter(myPair l, myPair r) {
return l.x < r.x;
}
bool Ysorter(myPair l, myPair r) {
return l.y < r.y;
}
void stepX(int& cx) {
while (++cx<le) {
if (!used[cx]) { return; }
}
}
void stepY(int& cy) {
while (++cy<le) {
if (!used[byY[cy].ix]) { return; }
}
}
bool doable(int pos, int prevY, int lPos, int nextX) {
if (lPos < pos) return prevY <= nextX;
int cx = -1;
int cy = -1;
int amount = lPos - pos + 1;
//If mandatory first pos
stepX(cx);
stepY(cy);
myPair xp = byX[cx];
if (xp.x < byY[cy].y)
{
if (xp.x < prevY) return false; //still not usable
used[cx] = true;
ord[pos] = cx;
if (doable(pos + 1, xp.y, lPos, nextX)) return true;
used[cx] = false;
return false;
}
bool firstposUsed = false;
int x = prevY;
for (int i = 1; i < amount; i++)
{
stepX(cx);
x = byX[cx].x;
if (!firstposUsed && x >= prevY)
{
firstposUsed = true;
}
else
{
stepY(cy);
if (x < byY[cy].y) { return false; } //Ei onnistu
}
}
if (firstposUsed)
{
stepY(cy);
if (x < byY[cy].y)
{
//Mandatory last pos
myPair yp = byY[cy];
if (yp.y > nextX) return false;
used[yp.ix] = true;
ord[lPos] = yp.ix;
if (doable(pos, prevY, lPos-1, yp.x)) return true;
used[yp.ix] = false;
return false;
}
}
cx = -1;
for (int i = 0; i < amount; i++)
{
stepX(cx);
xp = byX[cx];
if (xp.x < prevY) continue;
used[cx] = true;
ord[pos] = cx;
if (doable(pos + 1, xp.y, lPos, nextX)) return true;
used[cx] = false;
}
return false;
}
int main() {
int count;
scanf("%d",&count);
while (count-- > 0) {
scanf("%d",&le);
for (int i = 0; i<le; i++) {
scanf("%d %d",&byX[i].x, &byX[i].y);
}
fill(begin(used),end(used),0);
sort(byX, byX+le, Xsorter);
for (int i=0; i<le; i++) {
byY[i]= byX[i];
byY[i].ix=i;
}
sort(byY, byY+le, Ysorter);
if (doable(0, INT_MIN, le-1, INT_MAX)) {
printf("YES\n");
for (int i = 0; i<le; i++) {
myPair pa = byX[ord[i]];
printf("%d %d\n",pa.x, pa.y);
}
} else {
printf("NO\n");
}
}
return 0;
}Test details
Test 1
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 1 74 75 1 100 43 ... |
| correct output |
|---|
| YES 74 75 YES 100 43 YES ... |
| user output |
|---|
| YES 74 75 YES 100 43 YES ... Truncated |
Test 2
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 2 80 54 51 61 2 ... |
| correct output |
|---|
| YES 51 61 80 54 YES 2 64 ... |
| user output |
|---|
| YES 51 61 80 54 YES 2 64 ... Truncated |
Test 3
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 3 3 74 91 45 100 24 ... |
| correct output |
|---|
| YES 3 74 100 24 91 45 YES ... |
| user output |
|---|
| YES 3 74 91 45 100 24 YES ... Truncated |
Test 4
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 4 88 50 62 41 12 86 ... |
| correct output |
|---|
| YES 12 86 88 50 62 41 66 93 ... |
| user output |
|---|
| YES 12 86 88 50 62 41 66 93 ... Truncated |
Test 5
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 5 82 80 80 92 5 22 ... |
| correct output |
|---|
| YES 5 22 94 13 82 80 80 92 ... |
| user output |
|---|
| YES 5 22 80 92 93 91 94 13 ... Truncated |
Test 6
Group: 1, 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 5 34 38 26 30 1 6 ... |
| correct output |
|---|
| YES 1 6 12 22 26 30 34 38 ... |
| user output |
|---|
| YES 1 6 12 22 26 30 34 38 ... Truncated |
Test 7
Group: 1, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 5 50 40 28 25 51 7 ... |
| correct output |
|---|
| YES 51 7 50 40 47 1 17 11 ... |
| user output |
|---|
| YES 17 11 28 25 47 1 50 40 ... Truncated |
Test 8
Group: 1, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 5 2 2 2 1 1 1 ... |
| correct output |
|---|
| YES 1 2 2 1 2 1 1 1 ... |
| user output |
|---|
| YES 1 1 1 2 2 2 2 1 ... Truncated |
Test 9
Group: 2, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 175870020 296379324 248160539 883842002 21934885 781732852 ... |
| correct output |
|---|
| NO YES 4976156 6890135 10553287 11923223 14617057 17728163 ... |
| user output |
|---|
| NO YES 4976156 6890135 10553287 11923223 14617057 17728163 ... Truncated |
Test 10
Group: 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 447597377 314433951 700232436 691277009 937268439 708165426 ... |
| correct output |
|---|
| YES 998963839 391778929 995772196 257222033 995754704 553123757 994629465 247775824 ... |
| user output |
|---|
| YES 78989197 22224979 80804061 58329306 86698875 65763632 131739372 728604 ... Truncated |
Test 11
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 1 1 1 2 2 1 ... |
| correct output |
|---|
| YES 1 2 2 1 1 2 2 2 ... |
| user output |
|---|
| YES 1 2 2 2 2 1 1 2 ... Truncated |
Test 12
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 7 1 6 3 10 9 ... |
| correct output |
|---|
| YES 6 7 7 8 9 10 10 10 ... |
| user output |
|---|
| YES 1 9 9 5 5 1 2 1 ... Truncated |
Test 13
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 51 5 85 77 91 84 ... |
| correct output |
|---|
| YES 100 24 100 25 100 3 100 6 ... |
| user output |
|---|
| YES 14 71 71 57 57 38 39 8 ... Truncated |
Test 14
Group: 4, 5
Verdict: ACCEPTED
| input |
|---|
| 100 100 823828194 863717310 593641073 340054211 420481158 965069109 ... |
| correct output |
|---|
| YES 999289319 634855378 996775156 433726648 983657502 55234695 981890636 112877413 ... |
| user output |
|---|
| YES 96663815 577521349 592909481 560589803 561806022 239144740 249571565 551662152 ... Truncated |
Test 15
Group: 2, 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 88724450 89315226 266915464 267648621 189301651 189661541 ... |
| correct output |
|---|
| YES 764920 1459946 1936195 2832987 3691481 4085931 4991808 5840928 ... |
| user output |
|---|
| YES 764920 1459946 1936195 2832987 3691481 4085931 4991808 5840928 ... Truncated |
Test 16
Group: 3, 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 763682761 317584504 756010800 260162861 435911339 78070399 ... |
| correct output |
|---|
| YES 998768285 3307355 998714926 628486754 997115613 820932481 993320616 554600893 ... |
| user output |
|---|
| YES 67893124 41695427 71119534 44765650 91053246 37319028 93904415 12130613 ... Truncated |
Test 17
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 2 2 2 1 1 2 ... |
| correct output |
|---|
| YES 1 2 2 2 2 1 1 2 ... |
| user output |
|---|
| YES 1 1 1 2 2 1 1 1 ... Truncated |
Test 18
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 10 6 10 10 9 10 ... |
| correct output |
|---|
| YES 2 3 3 4 4 5 5 6 ... |
| user output |
|---|
| YES 1 5 5 8 8 9 9 3 ... Truncated |
Test 19
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 85 87 89 70 70 92 ... |
| correct output |
|---|
| YES 96 97 100 67 100 10 100 97 ... |
| user output |
|---|
| YES 2 27 28 20 21 5 5 34 ... Truncated |
Test 20
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 861154169 119512584 569086662 606567153 288230434 322196278 ... |
| correct output |
|---|
| YES 999945324 969534372 999738857 240617694 999244114 722161553 999207839 557351400 ... |
| user output |
|---|
| YES 47896585 707808748 708492101 450810863 451455781 877921018 880058576 232443227 ... Truncated |
Test 21
Group: 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 500 116439250 401518028 280329609 193466222 674040956 209050570 ... |
| correct output |
|---|
| NO YES 773701149 773852119 987509190 315670966 977413249 510418200 ... |
| user output |
|---|
| (empty) |
Test 22
Group: 5
Verdict: ACCEPTED
| input |
|---|
| 100 500 934181189 942499518 684836806 395802802 957884803 570946201 ... |
| correct output |
|---|
| YES 999772640 505132174 999111650 140844643 999028633 888134186 999020109 291046771 ... |
| user output |
|---|
| YES 24314565 937625373 938734639 719150886 719789329 201701461 216158065 913160623 ... Truncated |
