CSES - Putka Open 2015 – 2/6 - Results
 Task: Kertotaulu Sender: Submission time: 2015-08-15 10:32:52 +0300 Language: Python3 Status: READY Result: 100
Feedback
groupverdictscore
#1ACCEPTED26
#2ACCEPTED23
#3ACCEPTED51
Test results
testverdicttimegroup
#1ACCEPTED0.10 s1details
#2ACCEPTED0.07 s1details
#3ACCEPTED0.07 s1details
#4ACCEPTED0.07 s1details
#5ACCEPTED0.07 s1details
#6ACCEPTED0.08 s2details
#7ACCEPTED0.07 s2details
#8ACCEPTED0.08 s2details
#9ACCEPTED0.08 s2details
#10ACCEPTED0.07 s2details
#11ACCEPTED0.09 s3details
#12ACCEPTED0.08 s3details
#13ACCEPTED0.08 s3details
#14ACCEPTED0.07 s3details
#15ACCEPTED0.07 s3details

### Code

```#!/usr/bin/env python3

def tarkista(y1, x1, y2, x2):
return sum(y * x for y in range(y1, y2 + 1) for x in range(x1, x2 + 1))

def main():
jakaja = 10 ** 9 + 7
y1, x1, y2, x2 = map(int, input().strip().split())
vaakamatka = x2 - x1 + 1
pystymatka = y2 - y1 + 1

y1_rivisumma = (y1 * x1 + y1 * x2) * vaakamatka // 2
# print('ekan rivin summa:', y1_rivisumma)

vasen_kasvu = (y1 + 1) * x1 - y1 * x1
oikea_kasvu = (y1 + 1) * x2 - y1 * x2
rivikasvu = (vasen_kasvu + oikea_kasvu) * vaakamatka // 2
# print('rivikasvu:', rivikasvu)

kasvusumma = rivikasvu * pystymatka * (pystymatka - 1) // 2
# print('kasvusumma:', kasvusumma)
tulos = y1_rivisumma * pystymatka + kasvusumma
print(tulos % jakaja)
# print('oikea:', tarkista(y1, x1, y2, x2))

if __name__ == '__main__':
main()
```

### Test details

#### Test 1

Group: 1

Verdict: ACCEPTED

input
242 232 976 976

correct output
417796293

user output
417796293

#### Test 2

Group: 1

Verdict: ACCEPTED

input
12 645 476 899

correct output
335735446

user output
335735446

#### Test 3

Group: 1

Verdict: ACCEPTED

input
435 460 792 681

correct output
816738894

user output
816738894

#### Test 4

Group: 1

Verdict: ACCEPTED

input
318 389 441 799

correct output
488457695

user output
488457695

#### Test 5

Group: 1

Verdict: ACCEPTED

input
211 640 623 951

correct output
744563022

user output
744563022

#### Test 6

Group: 2

Verdict: ACCEPTED

input
201976 387454 920309 673120

correct output
946933548

user output
946933548

#### Test 7

Group: 2

Verdict: ACCEPTED

input
779381 684472 984138 828099

correct output
121907300

user output
121907300

#### Test 8

Group: 2

Verdict: ACCEPTED

input
284954 437564 777701 638386

correct output
321734745

user output
321734745

#### Test 9

Group: 2

Verdict: ACCEPTED

input
296035 308490 853604 668978

correct output
802693678

user output
802693678

#### Test 10

Group: 2

Verdict: ACCEPTED

input
460731 148462 619190 626173

correct output
264761756

user output
264761756

#### Test 11

Group: 3

Verdict: ACCEPTED

input
381626897 590403175 501559980 ...

correct output
258247883

user output
258247883

#### Test 12

Group: 3

Verdict: ACCEPTED

input
597399975 685346584 618318138 ...

correct output
390332938

user output
390332938

#### Test 13

Group: 3

Verdict: ACCEPTED

input
247307039 323856912 812562646 ...

correct output
89821592

user output
89821592

#### Test 14

Group: 3

Verdict: ACCEPTED

input
900181910 768404361 943052600 ...

correct output
242545884

user output
242545884

#### Test 15

Group: 3

Verdict: ACCEPTED

input
815 528 999999994 999999992

correct output
103780099

user output
103780099