QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#196519#6893. Kong Ming QiRoyo#AC ✓0ms3688kbC++201.6kb2023-10-01 18:34:032023-10-01 18:34:04

Judging History

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

  • [2023-10-01 18:34:04]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3688kb
  • [2023-10-01 18:34:03]
  • 提交

answer

#include <bits/stdc++.h>
#include <cstdio>
// #define int long long
#define PII pair<int, int>
#pragma GCC optimize("Ofast")
#define NO {puts("No") ; return ;}
#define YES {puts("Yes") ; return ;}
#define pb push_back
#define endl "\n"
#define fi first
#define se second
#define IOS std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
using namespace std;
mt19937 rd(time(0));
const int N = 1e5 + 10;
int n, m; 
void calc1(int x, int y) {
	if (y > x) swap(x, y);
	cout << (x + 1) / 2 << endl;
}

void solve() {
	cin >> n >> m;
	if (n == 1 && m == 1) {
		cout << 1 << endl;
		return ;
	}
	if (n == 1 || m == 1) {
		calc1(n, m);
		return ;
	}

	if (n >= 4) {
		n %= 3;
		if(n == 0) n = 3;
	}

	if (m >= 4) {
		m %= 3;
		if(m == 0) m = 3;
	}

	if (n == 1 && m == 1) {
		cout << 1 << endl;
	} else {
		if (n == 1 && m == 2) {
			cout << 1 << endl;
			return ;
		} else if (n == 1 && m == 3) {
			cout << 2 << endl;
			return ;
		} else if (n == 2 && m == 2) {
			cout << 1 << endl;
			return ;
		} else if (n == 2 && m == 3) {
			cout << 2 << endl;
			return ;
		} else if (n == 3 && m == 3) {
			cout << 2 << endl;
			return ;
		}

		swap(n, m);
		if (n == 1 && m == 2) {
			cout << 1 << endl;
			return ;
		} else if (n == 1 && m == 3) {
			cout << 2 << endl;
			return ;
		} else if (n == 2 && m == 2) {
			cout << 1 << endl;
			return ;
		} else if (n == 2 && m == 3) {
			cout << 2 << endl;
			return ;
		} else if (n == 3 && m == 3) {
			cout << 2 << endl;
			return ;
		}
	}
} 

signed main() {
    IOS;
    int t; cin >> t;
    while (t -- ) 
    solve();
    
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3688kb

input:

100
1 1
2 1
3 1
4 1
5 1
6 1
1 2
2 2
3 2
4 2
5 2
6 2
1 3
2 3
3 3
4 3
5 3
6 3
1 4
2 4
3 4
4 4
5 4
6 4
1 5
2 5
3 5
4 5
5 5
6 5
1 6
2 6
3 6
4 6
5 6
6 6
1 27
28 1
1 29
30 1
1 31
32 1
1 33
34 1
1 35
36 1
2 27
28 2
2 29
30 2
2 31
32 2
2 33
34 2
2 35
36 2
3 27
28 3
3 29
30 3
3 31
32 3
3 33
34 3
3 35
36 3
4 ...

output:

1
1
2
2
3
3
1
1
2
1
1
2
2
2
2
2
2
2
2
1
2
1
1
2
3
1
2
1
1
2
3
2
2
2
2
2
14
14
15
15
16
16
17
17
18
18
2
1
1
2
1
1
2
1
1
2
2
2
2
2
2
2
2
2
2
2
2
1
1
2
1
1
2
1
1
2
2
2
2
2
2
1
1
2
2
1
1
2
2
2
2
2
2
1
1
2
2
1
1
2

result:

ok 100 lines