QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#644682#8544. Colorful Graph 2asaltfishWA 0ms3616kbC++232.3kb2024-10-16 15:05:542024-10-16 15:05:55

Judging History

你现在查看的是最新测评结果

  • [2024-10-16 15:05:55]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3616kb
  • [2024-10-16 15:05:54]
  • 提交

answer

#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string.h>
#include<iomanip>
#include<numeric>
#include<stack>
#include<deque>
#include<queue>
#include<vector>
#include<map>
#include<set>
#define ll               long long
#define endl             "\n"
using namespace std;
inline int read() { register int s = 0, w = 1; char ch = getchar(); while (ch < '0' || ch > '9') { if (ch == '-')w = -1; ch = getchar(); }while (ch >= '0' && ch <= '9')s = s * 10 + ch - '0', ch = getchar(); return s * w; }
ll t, n, m, l, r;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    cin >> t;
    while (t--)
    {
        cin >> n >> m;
        if (!m)
        {
            ll now = 0;
            for (int i = 0; i < n; i++)
            {
                cout << (now ? 'R' : 'B');
                now = 1 - now;
            }
            cout << endl;
            continue;
        }
        vector<char>ans(n, '0');
        vector<pair<int, int>>vt;
        set<int>st;
        for (int i = 1; i <= m; i++)
        {
            cin >> l >> r;
            st.insert(l);
            st.insert(r);
            //if (r > l)swap(l, r);
            //vt.push_back({ l,r });
        }
        char last = 'R';
        for (auto i : st)
        {
            ans[i] = (last == 'R' ? 'B' : 'R');
        }
        //sort(vt.begin(), vt.end());
        //for (int i = 0; i < m; i++)
        //{
        //    l = vt[i].first;
        //    r = vt[i].second;
        //    if (ans[l] == '0' && ans[r] == '0')
        //    {
        //        ans[l] = 'R';
        //        ans[r] = 'B';
        //    }
        //    else if (ans[l] != '0')
        //    {
        //        ans[r] = (ans[l] == 'B' ? 'R' : 'B');
        //    }
        //    else if (ans[r] != '0')
        //    {
        //        ans[l] = (ans[r] == 'B' ? 'R' : 'B');
        //    }
        //}
        char p;
        int i = *(st.begin()), sum = 1;
        for (;sum<=n; i=(i+1)%n)
        {
            sum++;
            if (ans[i] == '0')
            {
                ans[i] = (p == 'R' ? 'B' : 'R');
            }
            p = ans[i];
        }
        for (int i = 0; i < n; i++)
            cout << ans[i];
        cout << endl;
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3616kb

input:

3
3 0
4 1
1 3
6 3
0 2
2 4
4 0

output:

BRB
RBRB
BRBRBR

result:

wrong answer cycle detected (test case 3)