이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define FOR(i,p,k) for(int i=(p);i<=(k);++i)
#define REP(i,n) FOR(i,0,(n)-1)
#define pii pair<int, int>
#define fi first
#define se second
#define mod 1000000007
typedef long long ll;
using namespace std;
struct modular{
int a;
modular(int x = 0){a = x;}
modular operator+(modular t){return {(a+t.a)%mod};}
void operator+=(modular t){a = (a+t.a)%mod;}
};
int main(){
int n, m;
scanf("%d%d", &n, &m);
vector<pii> wym;
while(m--){
int a, b;
scanf("%d%d", &a, &b);
wym.emplace_back(a, b);
}
vector<vector<vector<modular>>> dp(n+1, vector<vector<modular>>(n+1, vector<modular>(26, 0)));
REP(lit, 26) dp[1][1][lit] = 1;
FOR(poc, 1, n) FOR(kon, poc, n-1) REP(lit, 26){
modular t = dp[poc][kon][lit];
dp[poc][kon+1][lit] += t;
REP(nowa, 26) if(nowa != lit){
bool git = 1;
for(pii i : wym){
int p = min(i.fi, i.se);
int k = max(i.fi, i.se);
if(poc<=p&&p<=kon && kon<k){
if((lit<nowa) != (i.se<i.fi)) git = 0;
}
}
if(git) dp[kon+1][kon+1][nowa] += t;
}
}
modular wyn = 0ll;
FOR(poc, 1, n) REP(lit, 26) wyn += dp[poc][n][lit];
printf("%d", wyn.a);
}
컴파일 시 표준 에러 (stderr) 메시지
misspelling.cpp: In function 'int main()':
misspelling.cpp:20:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
20 | scanf("%d%d", &n, &m);
| ~~~~~^~~~~~~~~~~~~~~~
misspelling.cpp:24:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
24 | scanf("%d%d", &a, &b);
| ~~~~~^~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |