Submission details
Task:Anagrams
Sender:sfjiang
Submission time:2020-09-26 15:22:30 +0300
Language:C++ (C++11)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.25 sdetails
#3ACCEPTED0.10 sdetails
#4ACCEPTED0.26 sdetails
#5ACCEPTED0.25 sdetails
#6ACCEPTED0.24 sdetails
#7ACCEPTED0.01 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.01 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:33:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
   ~~~~~^~~~~~~~~~
input/code.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%s", tmp);
     ~~~~~^~~~~~~~~~~

Code

#include <cstdio>
#include <cstring>
#include <algorithm>

const int maxn = 400010;

struct Data
{
  char ori[40];
  char sorted[40];
  int len;

  Data(char* input)
  {
    strcpy(ori, input);
    strcpy(sorted, input);
    len = strlen(input);
    std::sort(sorted, sorted + len);
  }
  Data() {}
};

bool cmpData(const Data& p, const Data& q)
{
  return strcmp(p.sorted, q.sorted) < 0;
}

Data data[maxn];

int main()
{
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++)
  {
    char tmp[40];
    scanf("%s", tmp);
    data[i] = Data(tmp);
  }
  std::sort(data, data + n, cmpData);
  int cnt = 0;
  for (int i = 0; i < n;)
  {
    int j = i;
    for (; j < n &&
      strcmp(data[i].sorted, data[j].sorted) == 0; j++ );
    if (j - i > 1)
    {
      cnt++;
    }
    /*printf("%d\n", j - i);
    for (int k = i; k < j; k++)
    {
      printf("%s\n", data[k].ori);
    }*/
    i = j;
  }
  printf("%d\n", cnt);
  for (int i = 0; i < n;)
  {
    int j = i;
    for (; j < n &&
      strcmp(data[i].sorted, data[j].sorted) == 0; j++ );
    if (j - i > 1)
    {
      printf("%d\n", j - i);
      for (int k = i; k < j; k++)
      {
        printf("%s\n", data[k].ori);
      }
      
    }
    i = j;
    
    //cnt++;
  }
  return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
68760
aakkonen
aakkosellinen
aakkosellisesti
aakkosellisuus
...

correct output
3076
2
haaraantua
raahaantua
2
...

user output
3076
2
raahaantua
haaraantua
2
...
Truncated

Test 2

Verdict: ACCEPTED

input
370099
a
aa
aaa
aah
...

correct output
30178
2
basiparachromatin
marsipobranchiata
2
...

user output
30178
2
basiparachromatin
marsipobranchiata
2
...
Truncated

Test 3

Verdict: ACCEPTED

input
100000
cnhmuewgnum
dxkmhzhetnmxadtcy
hfjqwavsiguwpludsketibe
xwxolrmvkz
...

correct output
0

user output
0

Test 4

Verdict: ACCEPTED

input
400000
vlcsa
eltwde
wdcwwkubs
tmuxbirj
...

correct output
0

user output
0

Test 5

Verdict: ACCEPTED

input
400000
ebhfigdacjlk
aecfdijlhkgb
jfekhbidacgl
cehajbidfklg
...

correct output
1
400000
abcdeighjlfk
abcdeiglhfjk
abcdfkilejgh
...

user output
1
400000
ihdbalcfjgek
eblifdcgjhak
dkcflgheiajb
...
Truncated

Test 6

Verdict: ACCEPTED

input
400000
cbaabghadefb
hbbgfaeabdac
abaedcbgfbha
hcfadbbbeaag
...

correct output
1
400000
aaabbbcfegdh
aaabbbcfghed
aaabbbdcgfhe
...

user output
1
400000
gbbaadaechbf
hgdafacbaebb
bbadhfacabge
...
Truncated

Test 7

Verdict: ACCEPTED

input
1
a

correct output
0

user output
0

Test 8

Verdict: ACCEPTED

input
2
ab
ba

correct output
1
2
ab
ba

user output
1
2
ab
ba

Test 9

Verdict: ACCEPTED

input
2
aa
ab

correct output
0

user output
0