QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#644616#8544. Colorful Graph 2asaltfishWA 50ms3736kbC++232.1kb2024-10-16 14:49:522024-10-16 14:49:53

Judging History

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

  • [2024-10-16 14:49:53]
  • 评测
  • 测评结果:WA
  • 用时:50ms
  • 内存:3736kb
  • [2024-10-16 14:49:52]
  • 提交

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;
        for (int i = 1; i <= m; i++)
        {
            cin >> l >> r;
            if (r > l)swap(l, r);
            vt.push_back({ l,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 = ans[vt[0].first];
        int i = vt[0].first, 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: 100
Accepted
time: 0ms
memory: 3736kb

input:

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

output:

BRB
BBRR
BRBRRB

result:

ok ok (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 50ms
memory: 3636kb

input:

100000
9 6
2 0
4 6
3 6
0 6
0 7
2 6
3 0
5 2
2 4
2 0
6 3
1 5
4 1
2 4
9 6
3 1
6 4
8 1
3 6
1 6
8 6
3 0
7 4
3 0
4 0
6 4
3 1
7 4
5 1
5 0
3 1
1 4
4 1
1 3
6 3
2 4
4 0
2 0
6 3
3 0
1 3
5 3
7 4
0 5
2 5
5 1
3 5
8 5
4 1
5 1
5 0
1 3
5 7
3 0
8 5
0 2
4 6
0 6
0 3
4 0
8 5
5 1
1 4
5 0
3 1
5 7
3 0
10 7
0 2
9 2
5 8
3 9
...

output:

BRBBBRRRB
BRB
BRRBB
BBBRRR
BBRBBRBRR
BRB
BBRRRBB
BBRRRRB
BBRR
BRBRRB
BBRRBB
BBBBRRB
BBRRRRBB
BRB
BRRRBRRB
BBRRRRBB
BRB
BRRRRBBRRB
BBRBBRRR
BBBBBBRRRR
BBBBBRRRRR
BRRRRBRRBB
BRB
BBBRBRR
BBRRRR
BRRBBBBB
BBRR
BRRRBRB
BBBBBRRRRR
BBBBRRR
BBBRBRRR
BBRRRR
BRBRRB
BRB
BRB
BBRRBRBRR
BBBRRBB
BBRRB
BBBBRBBRRR
BB...

result:

wrong answer cycle detected (test case 5)