Task: | Ruudukko |
Sender: | Laserr |
Submission time: | 2022-11-04 15:54:30 +0200 |
Language: | C++ (C++11) |
Status: | READY |
Result: | 28 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 28 |
#2 | TIME LIMIT EXCEEDED | 0 |
#3 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 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.01 s | 2, 3 | details |
#5 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
#6 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
#7 | ACCEPTED | 0.30 s | 3 | details |
#8 | TIME LIMIT EXCEEDED | -- | 3 | details |
#9 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
#include<iostream> #include<vector> #include<algorithm> using namespace std; struct ruutu { unsigned long long first; long long second; unsigned long long x; unsigned long long y; ruutu(unsigned long long first_, long long second_, unsigned long long x_, unsigned long long y_) { first = first_; second = second_; x = x_; y = y_; } bool operator<(const ruutu &p) { if (first != p.first) return first < p.first; else if (y != p.y) return y < p.y; else return x < p.x; } }; long long haku(ruutu i, vector<ruutu> v, vector<vector<ruutu>> k, unsigned long long n) { long long s = 0; for (unsigned long long a = 0; a < n; a++) { if (i.first > k[i.y][a].first) { s += k[i.y][a].second; } if (i.first > k[a][i.x].first) { s += k[a][i.x].second; } } return s; } int main() { unsigned long long n; cin >> n; long long s = 0; vector<ruutu> v; vector<vector<ruutu>> k(n); for (unsigned long long i = 0; i < n; i++) { // y for (unsigned long long j = 0; j < n; j++) { // x unsigned long long x; cin >> x; ruutu z(x, 1, j, i); k[i].push_back(z); v.push_back(z); } } sort(v.begin(), v.end()); for (auto i : v) { long long c = 0; if (i.first != 1) { c += haku(i, v, k, n); } k[i.y][i.x].second += c; i.second += c; s += i.second; } unsigned long long mod = 1000000007; cout << s % mod; }
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 1 1 1 1 1 1 1 1 1 |
correct output |
---|
9 |
user output |
---|
9 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 1 2 3 6 5 4 7 8 9 |
correct output |
---|
135 |
user output |
---|
135 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 7 8 1 4 5 4 3 9 6 |
correct output |
---|
57 |
user output |
---|
57 |
Test 4
Group: 2, 3
Verdict: ACCEPTED
input |
---|
100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
10000 |
user output |
---|
10000 |
Test 5
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
187458477 |
user output |
---|
(empty) |
Test 6
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100 2995 8734 1018 2513 7971 5063 ... |
correct output |
---|
964692694 |
user output |
---|
(empty) |
Test 7
Group: 3
Verdict: ACCEPTED
input |
---|
1000 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
correct output |
---|
1000000 |
user output |
---|
1000000 |
Test 8
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1 2 3 4 5 6 7 8 9 10 11 12 13 ... |
correct output |
---|
229147081 |
user output |
---|
(empty) |
Test 9
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 520283 805991 492643 75254 527... |
correct output |
---|
951147313 |
user output |
---|
(empty) |