以下のコードで Atcoder abc165_c の入力例を試したのですが、2行目までよみこんだ時点で0を出力してしまいます。なぜ入力がうまくいかないのかが分かりませんし、なぜそこから0を出力することになるのかもわかりません。どなたか教えてくださるとうれしいです
コード
C++
1#include <bits/stdc++.h> 2#define _GLIBCXX_DEBUG 3#define rep(i, n) for (int i = 0; i < (int)(n); i++) 4#define rep2(i, s, n) for (int i = (s); i < (int)(n); i++) 5#define rep3(i, s, n) for (int i = (s); i > (int)(n); i--) 6#define all(v) v.begin(), v.end() 7#define pb push_back 8#define sz(x) ((int)(x).size()) 9typedef long long ll; 10using namespace std; 11using Graph = vector<vector<int>>; 12template<class T>bool chmax(T & a, const T & b) { if (a < b) { a = b; return 1; } return 0; } 13template<class T>bool chmin(T & a, const T & b) { if (b < a) { a = b; return 1; } return 0; } 14 15int N, M, Q; 16int a[50], b[50], c[50], d[50]; 17int Max = 0; 18 19void func(string s) { 20 if (sz(s) == N) { 21 int score = 0; 22 rep(i, Q) { 23 if (s[b[i] - 1] - s[a[i] - 1] == c[i]) score += d[i]; 24 } 25 chmax(Max, score); 26 return; 27 } 28 int last = 1; 29 if (sz(s) >= 1) last = s[sz(s) - 1]; 30 rep2(i, last, M + 1) { 31 string ns = s; 32 ns += ('0' + i); 33 func(ns); 34 } 35} 36 37int main() { 38 cin.tie(0); 39 ios::sync_with_stdio(false); 40 41 cin >> N >> M >> Q; 42 rep(i, Q) cin >> a[i], b[i], c[i], d[i]; 43 string s; 44 45 func(s); 46 47 cout << Max << "\n"; 48 49 return 0; 50}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。