Task: | 3SUM |
Sender: | htoik |
Submission time: | 2024-10-21 17:00:06 +0300 |
Language: | C++ (C++20) |
Status: | READY |
Result: | TIME LIMIT EXCEEDED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.00 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | ACCEPTED | 0.00 s | details |
#7 | ACCEPTED | 0.00 s | details |
#8 | ACCEPTED | 0.00 s | details |
#9 | ACCEPTED | 0.01 s | details |
#10 | ACCEPTED | 0.01 s | details |
#11 | ACCEPTED | 0.01 s | details |
#12 | ACCEPTED | 0.20 s | details |
#13 | TIME LIMIT EXCEEDED | -- | details |
#14 | TIME LIMIT EXCEEDED | -- | details |
#15 | TIME LIMIT EXCEEDED | -- | details |
#16 | ACCEPTED | 0.08 s | details |
#17 | ACCEPTED | 0.05 s | details |
#18 | ACCEPTED | 0.01 s | details |
#19 | ACCEPTED | 0.01 s | details |
#20 | ACCEPTED | 0.21 s | details |
#21 | TIME LIMIT EXCEEDED | -- | details |
#22 | TIME LIMIT EXCEEDED | -- | details |
#23 | ACCEPTED | 0.00 s | details |
Compiler report
input/code.cpp: In function 'int main()': input/code.cpp:21:14: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'ull' {aka 'long long unsigned int'} [-Wsign-compare] 21 | if(a < x-1){ | ~~^~~~~ input/code.cpp:44:27: warning: comparison of integer expressions of different signedness: 'ull' {aka 'long long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare] 44 | if(r > 0 && j != idx) | ~~^~~~~~ input/code.cpp:50:34: warning: comparison of integer expressions of different signedness: 'ull' {aka 'long long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare] 50 | if(h2.count(aa) && j != idx && h2[aa] != j){ | ~~^~~~~~ input/code.cpp:50:51: warning: comparison of integer expressions of different signedness: 'std::map<long long int, int>::mapped_type' {aka 'int'} and 'ull' {aka 'long long unsigned...
Code
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; int main(){ ull n, x; cin >> n >> x; vector<ll> as; unordered_map<ll, int> h; vector<ll> idxs; as.reserve(n); idxs.reserve(n); h.reserve(10*n); for(ull i=0; i<n; i++){ ll a; cin >> a; if(a < x-1){ as.push_back(a); idxs.push_back(i+1); } } n = as.size(); for(ull i=0; i<n; i++){ auto r = x - as[i]; if(r > 1) h[r] = i; } auto it = h.begin(); for(ull i=0; i<h.size(); i++, it++){ auto target = *it; ll t = target.first; ll idx = target.second; map<ll, int> h2; for(ull j=0; j<n; j++){ auto r = t - as[j]; if(r > 0 && j != idx) h2[r] = j; } for(ull j=0; j<n; j++){ auto aa = as[j]; if(h2.count(aa) && j != idx && h2[aa] != j){ cout << idxs[idx] << " " << idxs[(h2[aa])] << " " << idxs[(j)] << endl; return 0; } } } cout << "IMPOSSIBLE" << endl; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
1 3 1 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 2
Verdict: ACCEPTED
input |
---|
3 5 1 3 2 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 3
Verdict: ACCEPTED
input |
---|
3 6 1 3 2 |
correct output |
---|
1 3 2 |
user output |
---|
3 2 1 |
Test 4
Verdict: ACCEPTED
input |
---|
3 7 3 2 1 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 5
Verdict: ACCEPTED
input |
---|
7 3 2 1 1 2 2 1 1 |
correct output |
---|
2 3 7 |
user output |
---|
7 6 2 |
Test 6
Verdict: ACCEPTED
input |
---|
7 4 1 1 2 2 1 2 1 |
correct output |
---|
1 2 6 |
user output |
---|
6 7 1 |
Test 7
Verdict: ACCEPTED
input |
---|
7 5 1 2 1 2 2 1 1 |
correct output |
---|
1 2 5 |
user output |
---|
5 4 1 |
Test 8
Verdict: ACCEPTED
input |
---|
7 6 2 1 1 1 1 2 2 |
correct output |
---|
1 6 7 |
user output |
---|
7 6 1 |
Test 9
Verdict: ACCEPTED
input |
---|
5000 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
1 2 5000 |
user output |
---|
5000 4999 1 |
Test 10
Verdict: ACCEPTED
input |
---|
5000 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 11
Verdict: ACCEPTED
input |
---|
5000 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
714 3518 4240 |
user output |
---|
4240 3518 714 |
Test 12
Verdict: ACCEPTED
input |
---|
5000 919900245 663612758 9075403 585385629 98... |
correct output |
---|
2787 465 2266 |
user output |
---|
4710 2859 2450 |
Test 13
Verdict: TIME LIMIT EXCEEDED
input |
---|
5000 999989608 12983 25966 38949 51932 64915 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 14
Verdict: TIME LIMIT EXCEEDED
input |
---|
5000 1000000000 65536 131072 196608 262144 327... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 15
Verdict: TIME LIMIT EXCEEDED
input |
---|
5000 642700000 6427 12854 19281 25708 32135 3... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 16
Verdict: ACCEPTED
input |
---|
5000 919900246 663612758 9075403 585385629 98... |
correct output |
---|
193 1698 4019 |
user output |
---|
4896 1724 448 |
Test 17
Verdict: ACCEPTED
input |
---|
5000 919900247 663612758 9075403 585385629 98... |
correct output |
---|
4258 470 1911 |
user output |
---|
4935 3579 1342 |
Test 18
Verdict: ACCEPTED
input |
---|
5000 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ... |
correct output |
---|
4998 4999 5000 |
user output |
---|
5000 4999 4998 |
Test 19
Verdict: ACCEPTED
input |
---|
5000 919900247 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 20
Verdict: ACCEPTED
input |
---|
4999 919900245 9075403 585385629 987230075 83... |
correct output |
---|
2786 464 2265 |
user output |
---|
4709 2858 2449 |
Test 21
Verdict: TIME LIMIT EXCEEDED
input |
---|
5000 1000000000 261323261 25262018 237798562 3... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 22
Verdict: TIME LIMIT EXCEEDED
input |
---|
5000 76305003 1 5088 10175 15262 20349 25436... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
(empty) |
Test 23
Verdict: ACCEPTED
input |
---|
2 6 2 2 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |