CSES - Datatähti 2020 alku - Results
Submission details
Task:Merkkijonot
Sender:Microwave Abuser
Submission time:2019-10-02 16:55:24 +0300
Language:C++17
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3details
#2ACCEPTED0.48 s2, 3details
#3--3details
#40.07 s3details
#50.03 s3details
#6ACCEPTED0.01 s1, 2, 3details
#7ACCEPTED0.01 s1, 2, 3details
#80.01 s1, 2, 3details
#9ACCEPTED0.01 s1, 2, 3details
#100.01 s2, 3details
#110.01 s2, 3details
#120.01 s2, 3details
#130.01 s2, 3details
#140.01 s2, 3details
#150.10 s3details
#160.14 s3details
#170.10 s3details
#180.13 s3details
#190.14 s3details
#200.01 s1, 2, 3details
#210.01 s1, 2, 3details
#220.01 s1, 2, 3details
#230.01 s1, 2, 3details
#240.01 s1, 2, 3details

Code

//g++ -std=c++17 -O2 -Wall microwave.cpp -o microwave
#include <bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	//COMMENCE CODE
	int n;
	cin >> n;	//N = AMOUNT OF JONOJA
	string jonot [n+1];
 
	for(int jono = 1; jono <= n; jono++)
	{
		cin >> jonot[jono];
	}
 
	//INPUT COLLECTED, LETS DO STUFF
	int lastJono = n;
	int lastSamaJono;
	int shift;
	int count = 0;

	while(lastJono > 1)	//niin kauan kuin jonoja riittää, *yksi jono ei voi muodostaa paria
	{
		string samatJonot [n+1] = jonot;
		lastSamaJono = lastJono;
		lastJono = 0;

		for(int paikka = 1; samatJonot[1][paikka] != '\0'; paikka++)
		{
			int cPaikka = paikka-1;
			while((samatJonot[1][paikka] != samatJonot[1][cPaikka]) && cPaikka >= 0)
			{
				cPaikka--;
			}
			shift = 0;
			if(cPaikka == -1)
			{
				for(int verrattava = 2; verrattava <= lastSamaJono; verrattava++)	//jokaiselle verrattavalle
				{
					cPaikka = paikka-1;
					while((samatJonot[verrattava][paikka] != samatJonot[verrattava][cPaikka]) && cPaikka >= 0)
					{
						cPaikka--;
					}
					if(cPaikka != -1)
					{
						lastJono++;
						jonot[lastJono] = samatJonot[verrattava];
						shift++;
					}
					else
					{
						samatJonot[verrattava-shift] = samatJonot[verrattava];
					}
				}
			}
			else
			{
				for(int verrattava = 2; verrattava <= lastSamaJono; verrattava++)	//jokaiselle verrattavalle
				{
					if(samatJonot[verrattava][paikka] != samatJonot[verrattava][cPaikka])
					{
						lastJono++;
						jonot[lastJono] = samatJonot[verrattava];
						shift++;
					}
					else
					{
						samatJonot[verrattava-shift] = samatJonot[verrattava];
					}
				}
			}
			lastSamaJono -= shift;
			if(lastSamaJono == 1)
			{
				break;
			}
		}
		if(lastSamaJono > 1)
		{
			count += (lastSamaJono*(lastSamaJono-1))/2;
		}
	}
	cout << count;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
20
FFDISOVJLPIASANJRBHQXJVW
HBGVRZFWOTAAVUPYKMKXAOBEYUE
JKHXTPHUKTLTLNXMXMSYYFLF
HCSZMXTZCUFHIHSTEWKHCFZRTXU
...

correct output
20

user output
20

Test 2

Group: 2, 3

Verdict: ACCEPTED

input
5000
AJEDROEDXRGDUSDAPZBXXQBPJ
PDGCTAGCRTBCJICPFELRRMLFD
TISAOTGMDKUCITIEFQVCSBZJYUUO
FMASVJYFPMELSVLQWFZVLVMSPHYL
...

correct output
2178556

user output
2178556

Test 3

Group: 3

Verdict:

input
100000
RESKYADLVRSDCDXJVECAJCAP
CZLIWDHKVNRJHZINHFBOQEPN
LSTRSDTLADUIWXFQJSQPVRSPBCTZ
QEMSZOQSSVBRNQTCLJQIGVQO
...

correct output
404880850

user output
(empty)

Test 4

Group: 3

Verdict:

input
100000
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
4999950000

user output
704982704

Test 5

Group: 3

Verdict:

input
100000
IPI
Q
SPGV
UNYE
...

correct output
1041990627

user output
206884843

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
20
A
B
C
D
...

correct output
190

user output
190

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
A

correct output
0

user output
0

Test 8

Group: 1, 2, 3

Verdict:

input
20
A
BB
CCC
DDDD
...

correct output
0

user output
190

Test 9

Group: 1, 2, 3

Verdict: ACCEPTED

input
2
A
A

correct output
1

user output
1

Test 10

Group: 2, 3

Verdict:

input
5000
SEKNHNRHSRFYIHSCDPGXPTGUSYBFKZ...

correct output
20861

user output
11267551

Test 11

Group: 2, 3

Verdict:

input
5000
UGPWHWOWAREEIROZTRJGUCKDKTZJEO...

correct output
22818

user output
12089146

Test 12

Group: 2, 3

Verdict:

input
5000
FFQQCBCINBDWIKHFPO
SCJU
DNHYPGIQNZS
KNQCYRAXHHKORXMOVHL
...

correct output
22268

user output
8222787

Test 13

Group: 2, 3

Verdict:

input
5000
QVWMSYPWXWBBXWCVEOUAVQLDWNBXZB...

correct output
22589

user output
12442581

Test 14

Group: 2, 3

Verdict:

input
5000
JYORMNQAKXHNRBWGGSMWXWXMBKPBZU...

correct output
20482

user output
12487503

Test 15

Group: 3

Verdict:

input
100000
DCXXVIEYQAASZJYUUVYZUIJFGVBAYC...

correct output
8925377

user output
704582714

Test 16

Group: 3

Verdict:

input
100000
IJZHBIYNWQBDWNGZWVXJKXXWFVLPQX...

correct output
8907840

user output
704382725

Test 17

Group: 3

Verdict:

input
100000
GWUGLGQDAYGGJROIAKBMMICQMDUQQQ...

correct output
8771809

user output
704482720

Test 18

Group: 3

Verdict:

input
100000
SWVSVXURRSLCSHCPAKWESIPCNDKYLD...

correct output
8704480

user output
695890145

Test 19

Group: 3

Verdict:

input
100000
ZLSNSZBGIMCOLPDEAKVDAJCTMBNRLH...

correct output
8672362

user output
387537833

Test 20

Group: 1, 2, 3

Verdict:

input
20
AAB
D
CDBAA
D
...

correct output
15

user output
139

Test 21

Group: 1, 2, 3

Verdict:

input
20
A
CDD
AABBC
DBCB
...

correct output
15

user output
190

Test 22

Group: 1, 2, 3

Verdict:

input
20
ACADD
CDDCD
DACA
CCDCA
...

correct output
17

user output
50

Test 23

Group: 1, 2, 3

Verdict:

input
20
DCDA
BDBA
CACBD
BA
...

correct output
7

user output
71

Test 24

Group: 1, 2, 3

Verdict:

input
20
DDA
BBCDC
DDD
CCD
...

correct output
14

user output
90