题解 P7183 【[CRCI2008-2009] NOP】

· · 题解

如果 指令所在的位置 不合规,就在他前面加上几个空格。

此时,代码内多了几个 NOP,所以之后的指令/参数的位置也会相应后移。

所以之后的指令/参数的新的位置就是 NOP 的数量+原下标。

int main()
{
    int ans = 0;
    string s;
    cin >> s;

    for (int i = 0; i < s.length(); i++) {
        if (s[i] <= 'Z' && s[i] >= 'A') {
            if ((ans + i) % 4 != 0) {
                ans += 4 - ((ans + i) % 4);
            }
        }
    }

    cout << ans << endl;
    return 0;
}