Codeforces Visualizer is now a progressive web app. It means now you can install it on mobile or pc.

I never expected cfviz to be used for so long and by so many people when I built it two years ago. Thanks everyone for staying with cfviz :)
| # | User | Rating |
|---|---|---|
| 1 | Benq | 3792 |
| 2 | VivaciousAubergine | 3647 |
| 3 | Kevin114514 | 3603 |
| 4 | jiangly | 3583 |
| 5 | strapple | 3515 |
| 6 | tourist | 3470 |
| 7 | dXqwq | 3436 |
| 8 | Radewoosh | 3415 |
| 9 | Otomachi_Una | 3413 |
| 10 | Um_nik | 3376 |
| # | User | Contrib. |
|---|---|---|
| 1 | Qingyu | 157 |
| 2 | adamant | 153 |
| 3 | Um_nik | 146 |
| 3 | Proof_by_QED | 146 |
| 5 | Dominater069 | 145 |
| 6 | errorgorn | 141 |
| 7 | cry | 139 |
| 8 | YuukiS | 135 |
| 9 | TheScrasse | 134 |
| 10 | chromate00 | 133 |
Codeforces Visualizer is now a progressive web app. It means now you can install it on mobile or pc.

I never expected cfviz to be used for so long and by so many people when I built it two years ago. Thanks everyone for staying with cfviz :)
Update: With the same logic got accepted with python 3. So the problem is C++ specific. Please help me find the fault.
I was trying to solve UVa-1592-Database here's my code:
# include <bits/stdc++.h>
using namespace std;
string db[10007][12];
char buff[85];
int n,m;
bool read() {
if(scanf("%d %d\n", &n, &m) == EOF) return false;
for (int i = 0; i < n; i++) {
gets(buff);
int j=0,k=0;
while(buff[j] != '\0') {
if(buff[j] != ',') {
db[i][k].push_back(buff[j]);
} else k++;
j++;
}
}
}
bool findDup(int c1, int c2) {
map<pair<string, string>, int> mp;
for (int r = 0; r < n; r++) {
pair<string, string> p = make_pair(db[r][c1], db[r][c2]);
//cout<<r<<' '<<db[r][c1]<<' '<<db[r][c2]<<endl;
if(mp.find(p) == mp.end()) mp[p] = r;
else {
printf("NO\n%d %d\n%d %d\n", mp[p]+1, r+1, c1+1, c2+1);
return true;
}
}
return false;
}
void clear() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
db[i][j].clear();
}
}
}
int main() {
while(read()) {
bool found = false;
for (int i = 0; i < m; i++) {
for (int j = i+1; j < m; j++) {
found = findDup(i,j);
if(found) break;
}
if(found) break;
}
if(!found) printf("YES\n");
clear();
}
return 0;
}
from sys import stdin
def find_dup(c1, c2):
mem = {}
for r in range(n):
pair = (tb[r][c1], tb[r][c2])
try:
r1 = mem[pair]+1
print("NO")
print(r1, r+1)
print(c1+1, c2+1)
return True
except KeyError:
mem[pair] = r
return False
while True:
line = stdin.readline()
if not line:
break
n, m = map(int, line[:-1].split())
tb = []
for i in range(n):
line = stdin.readline()
tb.append(list(line[:-1].split(',')))
found = False
for i in range(m):
for j in range(i+1, m):
found = find_dup(i, j)
if found:
break
if found:
break
if not found:
print("YES")
Why am I getting WA? Can someone help with fresh eyes please? It passes the tests given in uDebug. Thanks

Hello guys! A new feature (heatmap) was added to the Codeforces Visualizer I shared few days earlier. Hope it'll be useful. Unfortunately the solved problem counting issue is still not fixed. I'm still trying. I'll remove this feature if I don't succeed. Thanks!
Hello cool coders! This is my first post on CF. This is to share a small tool I built using the codeforces api. Give it a try here: http://cfviz.netlify.com. The source is available here. Please let me know if you found any bug or issue.
Current features are:
Two new features was added since this post was published. 1. Submissions heatmap in single user analytics 2. Common contest rank in comparison
| Name |
|---|


