Submission details
Task:Pizza
Sender:multiply and surrender
Submission time:2015-09-30 17:22:26 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.34 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.20 sdetails
#4ACCEPTED0.21 sdetails
#5ACCEPTED0.80 sdetails
#6ACCEPTED0.80 sdetails
#7ACCEPTED0.83 sdetails
#8ACCEPTED0.79 sdetails
#9ACCEPTED0.80 sdetails
#10ACCEPTED0.80 sdetails
#11ACCEPTED0.80 sdetails
#12ACCEPTED0.80 sdetails
#13ACCEPTED0.79 sdetails
#14ACCEPTED0.81 sdetails
#15ACCEPTED0.79 sdetails

Code

#include <iostream>
#include <set>

#define ll long long

using namespace std;

int n,m;
string s[200];
set<char> cset;

ll count(int rnum) {
	ll res = 0;
	for (int i=0;i<=n-rnum;i++) {
		int a=0;int b=0;
		while (b<m) {
			for (int j=0;j<rnum;j++) {
			while (cset.count(s[i+j][b]) && a <=b) {
				for (int k=0;k<rnum;k++) {
					cset.erase(s[i+k][a]);
				}
				res+=b-a;
				a++;
			}
			if (a<=b)
			cset.insert(s[i+j][b]);
			}
			b++;
		}
		while (a<m) {
			res+=b-a; a++;
		}
		cset.clear();
	}
	return res;
}

int main() {
	cin >> n >> m;
	for (int i=0;i<n;i++) cin >> s[i];
	ll res = 0;
	for (int i=1;i<=26;i++) {
		res += count(i);
//		cout << i << " " << res << "\n";
	}
	cout << res << "\n";
}

Test details

Test 1

Verdict: ACCEPTED

input
184 87
LRBBMQBHCDARZOWKKYHIDDQSCDXRJM...

correct output
224236

user output
224236

Test 2

Verdict: ACCEPTED

input
27 45
JGFWGHIJQSOQTXXDACDWKJIFPUSGWE...

correct output
16321

user output
16321

Test 3

Verdict: ACCEPTED

input
191 23
NPWSFHCKPTJGFLITCZCZJBE
YYAJAXQMKHIEMPGYFZHNGSV
CVXEWGHCGFCQHZITLPBPBRV
AYWJLFCJHZGNXOXAUECMMEU
...

correct output
59000

user output
59000

Test 4

Verdict: ACCEPTED

input
61 199
PSKALEBUBFINGWBQWONRUYLCYIMNAQ...

correct output
165724

user output
165724

Test 5

Verdict: ACCEPTED

input
200 200
JBAKLCIAQRTWHPANGEIUGENSDHGPGC...

correct output
561705

user output
561705

Test 6

Verdict: ACCEPTED

input
200 200
SVSPWCEXABASBFZEMWAKKWAUIUNAVR...

correct output
565820

user output
565820

Test 7

Verdict: ACCEPTED

input
200 200
UYTHYGQHERHDTLIKRXUJFPBDDAQCPQ...

correct output
562800

user output
562800

Test 8

Verdict: ACCEPTED

input
200 200
WVIFEIMKFUSHVKHLCEDSMACDNVVSQZ...

correct output
557421

user output
557421

Test 9

Verdict: ACCEPTED

input
200 200
SZRAYLLUKXDHTRRCIWYTJCDQBQVTVH...

correct output
562054

user output
562054

Test 10

Verdict: ACCEPTED

input
200 200
IPETLETNADESOVVODINSQWERQFLBRO...

correct output
558431

user output
558431

Test 11

Verdict: ACCEPTED

input
200 200
BCBMFWOTIVPQIENQUWJYAWRYNBCFVV...

correct output
563290

user output
563290

Test 12

Verdict: ACCEPTED

input
200 200
NPTEOLTKVTBXIUWBJEKTDYRWKECVJY...

correct output
564778

user output
564778

Test 13

Verdict: ACCEPTED

input
200 200
IMQXSCUUJBKVLEOAUPGPFOYBCPXCEY...

correct output
559232

user output
559232

Test 14

Verdict: ACCEPTED

input
200 200
YJJWRSXPEKSNBDWCSNUQHJPQTXKYPG...

correct output
557185

user output
557185

Test 15

Verdict: ACCEPTED

input
200 200
AITMXDNVBGXOBSKPKBLJFNOWKBQZZA...

correct output
563009

user output
563009