SMALL
안녕하세요 오늘은 특정한 알고리즘을 사용하는 것이 아닌 수학적 사고력을 이용한 문제를 풀어보겠습니다.
이 문제는 특정한 알고리즘을 생각해내는것보다 단순히 이 문제의 원리를 생각해야합니다.
코드:
#include <bits/stdc++.h>
#include <vector>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
for(int i = 0; i<t; i++){
int x, y, count = 0, dis;
cin>>x>>y;
if(y-x == 1){
cout<<"1"<<endl;
continue;
}
else if(y-x==2){
cout<<2<<endl;
}
dis = y-x-2;
count += 2;
int index=2;
int res_count = 0;
while(1){
dis-=index;
res_count ++;
if(dis<=0){
count+= res_count;
break;
}
dis-=index;
res_count++;
if(dis<=0){
count += res_count;
break;
}
index++;
}
cout<<count<<endl;
}
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 11653 c++ 풀이 (0) | 2021.07.31 |
---|---|
백준 2581 c++ 풀이(복습필요!!) (0) | 2021.07.31 |
백준 1904 c++ 풀이 (0) | 2021.07.30 |
백준 10870번 c++ 풀이 (0) | 2021.07.30 |
백준 9095번 c++ 풀이 (0) | 2021.07.30 |