| Task: | Pizza |
| Sender: | Häviö Life |
| Submission time: | 2015-09-30 18:12:48 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.23 s | details |
| #2 | ACCEPTED | 0.05 s | details |
| #3 | ACCEPTED | 0.07 s | details |
| #4 | ACCEPTED | 0.18 s | details |
| #5 | ACCEPTED | 0.54 s | details |
| #6 | ACCEPTED | 0.56 s | details |
| #7 | ACCEPTED | 0.56 s | details |
| #8 | ACCEPTED | 0.54 s | details |
| #9 | ACCEPTED | 0.54 s | details |
| #10 | ACCEPTED | 0.54 s | details |
| #11 | ACCEPTED | 0.56 s | details |
| #12 | ACCEPTED | 0.56 s | details |
| #13 | ACCEPTED | 0.55 s | details |
| #14 | ACCEPTED | 0.56 s | details |
| #15 | ACCEPTED | 0.55 s | details |
Code
#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <unordered_set>
#include <stdio.h>
#include <string.h>
#include <unordered_map>
#include <fstream>
#include <set>
#include <map>
#define MOD 1000000007
#define ll long long
#define N (1<<50)
#define float double
#define str string
using namespace std;
int m[200][200];
int s[200][200][256];
int q(int y1, int x1, int y2, int x2, int c){
int v=s[y2][x2][c];
if(x1>0)
v-=s[y2][x1-1][c];
if(y1>0)
v-=s[y1-1][x2][c];
if(x1>0&&y1>0)
v+=s[y1-1][x1-1][c];
return v;
}
int main(){
int h,w;
cin>>h>>w;
for(int i=0; i<h; i++){
string __s;
cin>>__s;
for(int e=0; e<w; e++)
m[i][e]=__s[e];
}
for(int c='A'; c<='Z'; c++){
if(m[0][0]==c)
s[0][0][c]=1;
for(int i=1; i<h; i++)
if(m[i][0]==c)
s[i][0][c]=s[i-1][0][c]+1;
else
s[i][0][c]=s[i-1][0][c];
for(int e=1; e<w; e++)
if(m[0][e]==c)
s[0][e][c]=s[0][e-1][c]+1;
else
s[0][e][c]=s[0][e-1][c];
for(int i=1; i<h; i++)
for(int e=1; e<w; e++){
int _s=s[i-1][e][c]+s[i][e-1][c]-s[i-1][e-1][c];
if(m[i][e]==c)
_s++;
s[i][e][c]=_s;
}
}
int R=26;
int vast=0;
for(int i=0; i<h; i++)
for(int e=0; e<w; e++)
for(int kork=1; kork<=R&&i+kork<=h; kork++)
for(int lev=1; lev*kork<=R&&e+lev<=w; lev++){
bool ox=1;
for(char kirj='A'; kirj<='Z'; kirj++)
if(q(i,e,i+kork-1,e+lev-1,kirj)>1)
ox=false;
if(ox)
vast++;
}
cout<<vast<<endl;
return 0;
}
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 |
