# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
23225 |
2017-05-05T07:34:41 Z |
14kg |
Boat (APIO16_boat) |
C++11 |
|
1189 ms |
7940 KB |
#include <stdio.h>
#include <map>
#include <set>
#include <algorithm>
#define MOD 1000000007
#define min2(x,y) (x<y?x:y)
using namespace std;
int n, w_len;
long long d[501][1503];
bool check[501][1503];
pair<int, int> r[501], w[1503];
set<int> S;
map<int,int> M;
long long f(int lev, int y) {
if (lev == 0) return 1;
if (!check[lev][y]) {
check[lev][y] = true, d[lev][y] = f(lev - 1, y);
for (int i = r[lev].first; i <= min2(r[lev].second, y); i++) {
long long temp = f(lev - 1, i - 1), temp2 = w[i].second - w[i].first + 1;
temp = (temp*temp2);
d[lev][y] = (d[lev][y] + temp) % MOD;
}
} return d[lev][y];
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d %d", &r[i].first, &r[i].second);
S.insert(r[i].first), S.insert(r[i].second);
}
auto it1 = S.begin(), it2 = it1;
it2++, w[++w_len] = { 0,*it1 - 1 };
while (it2 != S.end()) {
M[*it1] = ++w_len, w[w_len] = { *it1,*it1 };
if (*it1 + 1 <= *it2 - 1) w[++w_len] = { *it1 + 1,*it2 - 1 };
it1++, it2++;
} M[*it1] = ++w_len, w[w_len] = { *it1,*it1 };
for (int i = 1; i <= n; i++) {
r[i].first = M[r[i].first];
r[i].second = M[r[i].second];
}
long long res = f(n, w_len);
printf("%lld", res ? res - 1 : MOD- 1);
}
Compilation message
boat.cpp: In function 'int main()':
boat.cpp:28:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &n);
^
boat.cpp:30:44: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d %d", &r[i].first, &r[i].second);
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
7808 KB |
Output is correct |
2 |
Correct |
3 ms |
7808 KB |
Output is correct |
3 |
Correct |
6 ms |
7808 KB |
Output is correct |
4 |
Correct |
3 ms |
7808 KB |
Output is correct |
5 |
Correct |
6 ms |
7808 KB |
Output is correct |
6 |
Correct |
6 ms |
7808 KB |
Output is correct |
7 |
Correct |
3 ms |
7808 KB |
Output is correct |
8 |
Correct |
3 ms |
7808 KB |
Output is correct |
9 |
Correct |
6 ms |
7808 KB |
Output is correct |
10 |
Correct |
3 ms |
7808 KB |
Output is correct |
11 |
Correct |
3 ms |
7808 KB |
Output is correct |
12 |
Correct |
6 ms |
7808 KB |
Output is correct |
13 |
Correct |
3 ms |
7808 KB |
Output is correct |
14 |
Correct |
3 ms |
7808 KB |
Output is correct |
15 |
Correct |
6 ms |
7808 KB |
Output is correct |
16 |
Correct |
3 ms |
7808 KB |
Output is correct |
17 |
Correct |
0 ms |
7808 KB |
Output is correct |
18 |
Correct |
0 ms |
7808 KB |
Output is correct |
19 |
Correct |
0 ms |
7808 KB |
Output is correct |
20 |
Correct |
0 ms |
7808 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
7808 KB |
Output is correct |
2 |
Correct |
3 ms |
7808 KB |
Output is correct |
3 |
Correct |
6 ms |
7808 KB |
Output is correct |
4 |
Correct |
3 ms |
7808 KB |
Output is correct |
5 |
Correct |
6 ms |
7808 KB |
Output is correct |
6 |
Correct |
6 ms |
7808 KB |
Output is correct |
7 |
Correct |
3 ms |
7808 KB |
Output is correct |
8 |
Correct |
3 ms |
7808 KB |
Output is correct |
9 |
Correct |
6 ms |
7808 KB |
Output is correct |
10 |
Correct |
3 ms |
7808 KB |
Output is correct |
11 |
Correct |
3 ms |
7808 KB |
Output is correct |
12 |
Correct |
6 ms |
7808 KB |
Output is correct |
13 |
Correct |
3 ms |
7808 KB |
Output is correct |
14 |
Correct |
3 ms |
7808 KB |
Output is correct |
15 |
Correct |
6 ms |
7808 KB |
Output is correct |
16 |
Correct |
3 ms |
7808 KB |
Output is correct |
17 |
Correct |
0 ms |
7808 KB |
Output is correct |
18 |
Correct |
0 ms |
7808 KB |
Output is correct |
19 |
Correct |
0 ms |
7808 KB |
Output is correct |
20 |
Correct |
0 ms |
7808 KB |
Output is correct |
21 |
Incorrect |
1189 ms |
7940 KB |
Output isn't correct |
22 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
19 ms |
7808 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
7808 KB |
Output is correct |
2 |
Correct |
3 ms |
7808 KB |
Output is correct |
3 |
Correct |
6 ms |
7808 KB |
Output is correct |
4 |
Correct |
3 ms |
7808 KB |
Output is correct |
5 |
Correct |
6 ms |
7808 KB |
Output is correct |
6 |
Correct |
6 ms |
7808 KB |
Output is correct |
7 |
Correct |
3 ms |
7808 KB |
Output is correct |
8 |
Correct |
3 ms |
7808 KB |
Output is correct |
9 |
Correct |
6 ms |
7808 KB |
Output is correct |
10 |
Correct |
3 ms |
7808 KB |
Output is correct |
11 |
Correct |
3 ms |
7808 KB |
Output is correct |
12 |
Correct |
6 ms |
7808 KB |
Output is correct |
13 |
Correct |
3 ms |
7808 KB |
Output is correct |
14 |
Correct |
3 ms |
7808 KB |
Output is correct |
15 |
Correct |
6 ms |
7808 KB |
Output is correct |
16 |
Correct |
3 ms |
7808 KB |
Output is correct |
17 |
Correct |
0 ms |
7808 KB |
Output is correct |
18 |
Correct |
0 ms |
7808 KB |
Output is correct |
19 |
Correct |
0 ms |
7808 KB |
Output is correct |
20 |
Correct |
0 ms |
7808 KB |
Output is correct |
21 |
Incorrect |
1189 ms |
7940 KB |
Output isn't correct |
22 |
Halted |
0 ms |
0 KB |
- |