Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- subporcess path
- c3 축 가리기
- python subprocess
- telegraf
- regex_search
- gcc 업데이트
- 정규식 컴파일
- snmp
- c3 축 없애기
- c3 초
- c3 step graph
- 정규식 활용
- semanage
- python os
- 백준
- InfluxDB
- selinux port 등록
- g++ 업데이트
- CentOS7
- linux시간으로 변경
- gcc regex
- grafana dashboard
- 정규식 문자열 출력
- c3 second
- snmp test
- 1697
- influxdb 설치
- c++ 정규식
- centos pyhon 설치
- python popen
Archives
- Today
- Total
리셋 되지 말자
[백준 1654] 랜선 자르기 본문
전선의 길이가 2의 31승 까지 가는데, 자료형을 잘못 정해서 뻘짓을 많이 하였다
unsigned long long과 비트 연산을 이용해서 수를 만들어줌.
long long도 되는지 이상함.
분명 배열은 long long 인데 (실수임)
왜 되는거지>..?
#include<bits/stdc++.h>
using namespace std;
long long lan[100001];
int k, n;
int main(){
cin>>k>>n;
for(int i=0; i<k; i++){
cin>>lan[i];
}
unsigned long long s=1, e;
int a=31;
e = ((unsigned long long)1<<31) -1 ;
int sum=0;
unsigned long long res=0;
while(s<=e){
sum=0;
unsigned long long mid = (s+e)/2;
for(int i=0; i<k; i++){
sum+=(lan[i]/mid);
}
if(sum<n){
e=mid-1;
}
else {
res = max(res, mid);
s=mid+1;
}
}
cout<<res<<'\n';
return 0;
}
'알고리즘' 카테고리의 다른 글
pair 구성요소를 같은 vector 정렬하기 (0) | 2020.08.14 |
---|---|
[우선순위 큐(Heap)] c++ (0) | 2020.06.14 |
[c++] stoi (0) | 2020.05.21 |
[c++] to_string (int를 string으로 변경하는 함수) (0) | 2020.05.21 |
[C++] sort 내림차순 (0) | 2020.05.21 |
Comments