제출 #62382

#제출 시각아이디문제언어결과실행 시간메모리
62382win11905Mate (COCI18_mate)C++11
0 / 100
2058 ms127484 KiB
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int, int>
#define x first
#define y second

const int N = 2e3+5;
const int M = 1e9+7;

int n, m, ret[26], c[N][N];
char A[N];
vector<pii> alp[N][N];

int main() {
    scanf("%s", A), n = strlen(A);
    for_each(A, A+n, [&](char &c) { c -= 'a'; });
    for(int i = n-2; i; --i) {
        ret[A[i+1]]++;
        for(int j = 0; j < 26; ++j) if(ret[j]) alp[A[i]][j].emplace_back(i, ret[j]);
    }
    c[0][0] = 1;
    for(int i = 1; i <= n; ++i) {
        c[i][0] = 1;
        for(int j = 1; j <= n; ++j) c[i][j] = (c[i-1][j] + c[i-1][j-1]) % M;
    }
    scanf("%d", &m);
    while(m--) {
        int d; scanf("%d %s", &d, A);
        d -= 2;
        int sum = 0;
        for(pii x : alp[A[0]-'a'][A[1]-'a']) sum = (sum + 1ll * c[x.x][d] * x.y) % M;
        printf("%d\n", sum);
    }
}

컴파일 시 표준 에러 (stderr) 메시지

mate.cpp: In function 'int main()':
mate.cpp:19:19: warning: array subscript has type 'char' [-Wchar-subscripts]
         ret[A[i+1]]++;
                   ^
mate.cpp:20:56: warning: array subscript has type 'char' [-Wchar-subscripts]
         for(int j = 0; j < 26; ++j) if(ret[j]) alp[A[i]][j].emplace_back(i, ret[j]);
                                                        ^
mate.cpp:16:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%s", A), n = strlen(A);
     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
mate.cpp:27:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &m);
     ~~~~~^~~~~~~~~~
mate.cpp:29:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         int d; scanf("%d %s", &d, A);
                ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...