CSES - Putka Open 2020 – 1/5 - Results
Submission details
Task:Pinot
Sender:tsiki2
Submission time:2020-09-06 17:40:51 +0300
Language:C++ (C++11)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED23
#2ACCEPTED77
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2details
#2ACCEPTED0.01 s2details

Code

#include <stdio.h> // include before iostream for faster scanf
#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <utility>
#include <set>
#include <unordered_set>
#include <cmath>
#include <math.h>
#include <queue>
#include <stdlib.h>
#include <string.h>
#include <sstream>
#include <tuple>
#include <utility>
#include <iomanip>
#include <iterator>

using namespace std;
typedef long long LL;

#define printv(printVec) for (auto printVecIter : (printVec)) cout << printVecIter << " "; cout << endl;

// g++ -Wall -Wshadow -std=c++11 a.cpp && ./a.out


int solve(int a, int b) {
	int ans = 0;
	while (a > 0 && b > 0) {
		if (a > b) {
			int diff = a - b;
			int asd = diff / b + ((diff % b) == 0 ? 0 : 1);
			a -= asd*b;
			ans += asd;
		} else if (b > a) {
			int diff = b - a;
			int asd = diff / a + ((diff % a) == 0 ? 0 : 1);
			b -= asd*a;
			ans += asd;
		} else {
			a = 0;
			ans++;
		}
	}
	return ans;
}


int main() {
	std::ios::sync_with_stdio(false);cin.tie(0);
	int t; cin>>t;
	vector<int> ans;
	while(t--) {
		int a,b; cin>>a>>b;
		ans.push_back(solve(a,b));
	}
	for (int i : ans) {
		cout << i << endl;
	}
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
1000
5 90
19 86
66 28
10 47
...

correct output
18
15
9
10
16
...

user output
18
15
9
10
16
...
Truncated

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
1 936283842
56227247 73458046
364717918 449812461
158413382 363667122
...

correct output
936283842
167
116
59
158
...

user output
936283842
167
116
59
158
...
Truncated