| Task: | Zbrka |
| Sender: | untokarila |
| Submission time: | 2019-07-26 15:34:06 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | details |
| #2 | ACCEPTED | 0.01 s | details |
| #3 | ACCEPTED | 0.01 s | details |
| #4 | ACCEPTED | 0.01 s | details |
| #5 | ACCEPTED | 0.01 s | details |
| #6 | ACCEPTED | 0.01 s | details |
| #7 | ACCEPTED | 0.03 s | details |
| #8 | ACCEPTED | 0.01 s | details |
| #9 | ACCEPTED | 0.01 s | details |
| #10 | ACCEPTED | 0.05 s | details |
| #11 | ACCEPTED | 0.07 s | details |
| #12 | ACCEPTED | 0.08 s | details |
Code
#include <bits/stdc++.h>
#define P 1000000007
#define ll long long
using namespace std;
ll d[2][1010101], z = 1, s = 0;
int main(){
int n, c;
cin >> n >> c;
d[1][1] = 1;
for(int i=1; i<=n; i++){
z += i-1;
int h = (z+1)/2;
for(int j=1; j<=h && j<=c+1; j++){
d[s][j] = d[s][j-1]+d[s^1][j];
if(j>i) d[s][j] -= d[s^1][j-i];
if(d[s][j]<0) d[s][j]+=P;
d[s][j]%=P;
}
if(z&1){
for(int j=1; j<h && j<=c+1; j++){
d[s][j+h] = d[s][h-j];
}
} else {
for(int j=1; j<h+1 && j<=c+1; j++){
d[s][j+h] = d[s][h-j+1];
}
}
s^=1;
}
cout << d[s^1][c+1];
return 0;
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 1 1 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 9 36 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 9 37 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 20 191 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 51 93 |
| correct output |
|---|
| 652564375 |
| user output |
|---|
| 652564375 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 150 15 |
| correct output |
|---|
| 906085333 |
| user output |
|---|
| 906085333 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 432 10000 |
| correct output |
|---|
| 532401236 |
| user output |
|---|
| 532401236 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 987 4 |
| correct output |
|---|
| 621481900 |
| user output |
|---|
| 621481900 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 999 931 |
| correct output |
|---|
| 502211067 |
| user output |
|---|
| 502211067 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 999 5000 |
| correct output |
|---|
| 722028249 |
| user output |
|---|
| 722028249 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 999 8234 |
| correct output |
|---|
| 263421764 |
| user output |
|---|
| 263421764 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 1000 10000 |
| correct output |
|---|
| 463544056 |
| user output |
|---|
| 463544056 |
