新年bu快乐 谁来帮帮我!!!!



{\Huge 90} 分,本来65的 :sweat_smile:

有没有在线神犇帮帮本菜鸟

代码?还是思路有问题

1 个赞

ooo忘发了

#include<bits/stdc++.h>
using namespace std;
int m, n;
int s[100111];
int d[100111];
int id[100111];
int ans[100111];
int main() {
    cin >> m >> n;
    for (int i = 1; i <= m; i++) cin >> s[i];
    for (int i = 1; i <= n; i++) cin >> d[i];
    for (int i = 1; i <= m; i++) id[i] = 1;
    for (int i = 1; i <= m; i++) {
        for (int j = 1;; j++) {
            if (j == 1) {
                int now = s[i] * d[1];
                int k = now % 10;
                int steps = k + 1;
                if (steps % 2 == 0) {
                    if (steps > s[i]) {
                        ans[i] = s[i];
                        break;
                    } else if (id[i] + steps > n) {
                        ans[i] = s[i] - steps;
                        break;
                    } else {
                        id[i] += steps;
                        s[i] -= steps;
                    }
                } else {
                    if (steps > s[i]) {
                        ans[i] = s[i];
                        break;
                    } else if (id[i] - steps < 1) {
                        ans[i] = s[i] - steps;
                        break;
                    } else {
                        id[i] -= steps;
                        s[i] -= steps;
                    }
                }
            } else {
                int steps = d[id[i]];
                if (steps > s[i]) {
                    ans[i] = s[i];
                    break;
                }
                if (steps % 2 == 0) {
                    if(id[i] + steps > n) {
                        ans[i] = s[i] - steps;
                        break;
                    }else {
                        id[i] += steps;
                        s[i] -= steps;
                    }
                }else{
                    if(id[i] - steps < 1){
                        ans[i] = s[i] - steps;
                        break;
                    }else{
                        id[i] -= steps;
                        s[i] -= steps;
                    }
                }
            }
        }
    }
    for(int i = 1; i <= m; i++) cout << ans[i] << ' ';
    return 0;
}