Submission #154734

# Submission time Handle Problem Language Result Execution time Memory
154734 2019-09-24T10:52:01 Z arnold518 PIN (CEOI10_pin) C++14
30 / 100
150 ms 3064 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 5e4;

int N, D;
int A[MAXN+10][5], T[5]={1, 40, 40*40, 40*40*40};
ll ans[5];

int f(char x)
{
    if('0'<=x && x<='9') return x-'0';
    else return x-'a'+10;
}

int solve()
{
    int i, j, k, p, q;
    for(i=0; i<4; i++)
    {
        map<int, int> M;
        for(j=1; j<=N; j++)
        {
            ans[1]+=M[A[j][4]-A[j][i]];
            M[A[j][4]-A[j][i]]++;
        }
    }

    for(i=0; i<4; i++)
    {
        for(j=i+1; j<4; j++)
        {
            map<int, int> M;
            for(k=1; k<=N; k++)
            {
                ans[2]+=M[A[k][4]-A[k][i]-A[k][j]];
                M[A[k][4]-A[k][i]-A[k][j]]++;
            }
        }
    }
    ans[2]-=ans[1];
}

int main()
{
    int i, j;

    scanf("%d%d", &N, &D);
    for(i=1; i<=N; i++)
    {
        char s[5];
        scanf("%s", s);
        A[i][0]=f(s[0])*T[0];
        A[i][1]=f(s[1])*T[1];
        A[i][2]=f(s[2])*T[2];
        A[i][3]=f(s[3])*T[3];
        A[i][4]=A[i][0]+A[i][1]+A[i][2]+A[i][3];
    }
    solve();
    printf("%lld", ans[D]);
}

Compilation message

pin.cpp: In function 'int solve()':
pin.cpp:22:18: warning: unused variable 'p' [-Wunused-variable]
     int i, j, k, p, q;
                  ^
pin.cpp:22:21: warning: unused variable 'q' [-Wunused-variable]
     int i, j, k, p, q;
                     ^
pin.cpp:46:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
pin.cpp: In function 'int main()':
pin.cpp:50:12: warning: unused variable 'j' [-Wunused-variable]
     int i, j;
            ^
pin.cpp:52:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &N, &D);
     ~~~~~^~~~~~~~~~~~~~~~
pin.cpp:56:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%s", s);
         ~~~~~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 504 KB Output is correct
2 Incorrect 5 ms 376 KB Output isn't correct
3 Incorrect 4 ms 376 KB Output isn't correct
4 Correct 34 ms 1016 KB Output is correct
5 Correct 41 ms 1144 KB Output is correct
6 Incorrect 41 ms 1144 KB Output isn't correct
7 Incorrect 34 ms 1016 KB Output isn't correct
8 Correct 45 ms 1144 KB Output is correct
9 Correct 71 ms 1528 KB Output is correct
10 Incorrect 79 ms 1768 KB Output isn't correct
11 Incorrect 43 ms 1208 KB Output isn't correct
12 Incorrect 75 ms 1712 KB Output isn't correct
13 Incorrect 49 ms 1400 KB Output isn't correct
14 Incorrect 44 ms 1144 KB Output isn't correct
15 Incorrect 75 ms 1784 KB Output isn't correct
16 Correct 97 ms 2352 KB Output is correct
17 Incorrect 150 ms 2936 KB Output isn't correct
18 Incorrect 114 ms 2424 KB Output isn't correct
19 Incorrect 131 ms 2808 KB Output isn't correct
20 Incorrect 147 ms 3064 KB Output isn't correct