Code Submission Evaluation System Login

BOI 2016, day 1

Start:2016-05-12 09:00:00
End:2016-05-12 14:00:00
 

Tasks | Scoreboard | Statistics


CSES - BOI 2016, day 1 - Results
History
2016-05-12 13:45:5327
2016-05-12 13:40:420
Task:Spiral
Sender:WildVegemite
Submission time:2016-05-12 13:45:53
Language:C++
Status:READY
Score:27

Feedback

groupverdictscore
#1ACCEPTED12
#2ACCEPTED15
#3TIME LIMIT EXCEEDED0
#4TIME LIMIT EXCEEDED0
#5TIME LIMIT EXCEEDED0

Test results

testverdicttime (s)group
#1ACCEPTED0.30 / 1.501details
#2ACCEPTED0.05 / 1.502details
#3TIME LIMIT EXCEEDED-- / 1.503details
#4TIME LIMIT EXCEEDED-- / 1.504details
#5TIME LIMIT EXCEEDED-- / 1.505details

Code

#include<iostream>
#include<iomanip>
#include<queue>
#include<cstdio>
#include<algorithm>
#define forn(a,b) for(int (a)=0; (a)<(int)(b); ++(a))
#define forr(a,c,b) for(int (a)=int(c); (a)<(int)(b); ++(a))
using namespace std;
typedef long long ll;
const ll MOD = 1000000007;
const int maxn = 1<<11;

int N, Q;

ll ulam(ll px, ll py)
{
    ll x = abs(px);
    ll y = abs(py);
    bool q  = x > y;

    x   = q ? x : y;
    y   = q ? px + py : px - py;
    y   = abs(y) + 4 * x * x + 1;
    x   <<= 1;

    return q
    ? (px > 0 ? y - x - x : y)
    : (py > 0 ? y - x : y + x);
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    //freopen("entrada.txt","r",stdin);

    ll x1, x2, y1, y2;

    cin>>N>>Q;
    forn(i, Q){
        ll S = 0;
        cin>>x1>>y1>>x2>>y2;
        for(int x = x1; x <= x2; ++x)
            for(int y = y1; y <= y2; ++y)
                S = (S + ulam(x, y)) % MOD;
        cout<<S<<endl;
    }

    return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1000 100
-709 0 1000 123
-621 -1000 -102 -435
-602 -560 276 -356
-945 -590 0 -468
...
view   save

correct output
788057008
633127082
507903329
53165899
558016315
...
view   save

user output
788057008
633127082
507903329
53165899
558016315
...
view   save

Test 2

Group: 2

Verdict: ACCEPTED

input
1000000000 100
181053719 1000000000 181053719...
view   save

correct output
818946492
750635163
193830026
660632411
46072376
...
view   save

user output
818946492
750635163
193830026
660632411
46072376
...
view   save

Test 3

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
100000 100
-88233 -87279 -49871 52277
-86645 -7997 48948 30702
-79916 -36210 -21257 -16821
0 57331 93163 100000
...
view   save

correct output
986592951
708386765
85336595
18263594
32233727
...
view   save

user output
(empty)

Test 4

Group: 4

Verdict: TIME LIMIT EXCEEDED

input
1000000000 100
1 1 21134200 719983102
1 1 929463279 1000000000
1 1 68450838 1
1 1 84417340 297177199
...
view   save

correct output
695961158
957360176
137575768
522232140
58884045
...
view   save

user output
(empty)

Test 5

Group: 5

Verdict: TIME LIMIT EXCEEDED

input
1000000000 100
-857489445 -1000000000 -432836...
view   save

correct output
902627632
581519884
819269364
857298983
278402948
...
view   save

user output
(empty)