Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
9년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
15 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
49 행
복사
12 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
49 행
복사
#include <stdio.h>
#include <stdio.h>
#include <stack>
#include <stack>
#include <map>
#include <map>
#include <string.h>
#include <string.h>
#include <string>
#include <string>
#include <iostream>
#include <iostream>
#include <algorithm>
#include <algorithm>
#include <iomanip>
#include <iomanip>
#include <math.h>
#include <math.h>
#include <vector>
#include <vector>
#include <set>
#include <set>
#include <queue>
#include <queue>
#include <functional>
#include <functional>
using namespace std;
using namespace std;
#define ll long long
#define ll long long
#define mp make_pair
#define mp make_pair
#define pb push_back
#define pb push_back
//#define ld long double
//#define ld long double
const double sn = 1e-6;
const double sn = 1e-6;
ll mod = 1000000007;
ll mod = 1000000007;
ll dp[5000005];
ll dp[5000005];
복사
복사됨
복사
복사됨
ll
t, l, r;
int
t, l, r;
int main() {
int main() {
복사
복사됨
복사
복사됨
scanf("%
I64d%I64d%I64d
", &t, &l, &r);
scanf("%
d %d %d
", &t, &l, &r);
ll ans = 0;
ll ans = 0;
복사
복사됨
복사
복사됨
for (
ll
i = 2; i <= r; i++) {
for (
int
i = 2; i <= r; i++) {
dp[i] = LLONG_MAX;
dp[i] = LLONG_MAX;
}
}
복사
복사됨
복사
복사됨
for (
ll
i = 2; i <= r; i++) {
for (
int
i = 2; i <= r; i++) {
dp[i] = min(
dp[i],
((i*
(i - 1)
)
/ 2
)
);
dp[i] = min(
dp[i],
1ll * i *
(i - 1)
/ 2
);
복사
복사됨
복사
복사됨
for (
ll
j = 2 * i; j <= r; j += i) {
for (
int
j = 2 * i; j <= r; j += i) {
ll
t = j/i;
int
t = j/i;
ll val =
((t*
(t - 1)
)
/ 2
)
;
ll val =
1ll * t *
(t - 1)
/ 2
;
val = (val * i);
val = (val * i);
dp[j] = min(dp[j], (val + dp[i]));
dp[j] = min(dp[j], (val + dp[i]));
}
}
}
}
ll ti = 1;
ll ti = 1;
복사
복사됨
복사
복사됨
for (
ll
i = 0; i <= r - l; i++) {
for (
int
i = 0; i <= r - l; i++) {
ll v1 = ti
%mod
, v2 = dp[i+l]%mod;
ll v1 = ti
, v2 = dp[i+l]%mod;
ll v3 =
(v1*v2) % mod
;
ll v3 =
v1 * v2
;
ans = (ans + v3) % mod;
ans = (ans + v3) % mod;
ti = (ti*t) % mod;
ti = (ti*t) % mod;
}
}
printf("%I64d\n", ans%mod);
printf("%I64d\n", ans%mod);
return 0;
return 0;
}
}
저장된 비교 결과
원본
파일 열기
#include <stdio.h> #include <stack> #include <map> #include <string.h> #include <string> #include <iostream> #include <algorithm> #include <iomanip> #include <math.h> #include <vector> #include <set> #include <queue> #include <functional> using namespace std; #define ll long long #define mp make_pair #define pb push_back //#define ld long double const double sn = 1e-6; ll mod = 1000000007; ll dp[5000005]; ll t, l, r; int main() { scanf("%I64d%I64d%I64d", &t, &l, &r); ll ans = 0; for (ll i = 2; i <= r; i++) { dp[i] = LLONG_MAX; } for (ll i = 2; i <= r; i++) { dp[i] = min(dp[i], ((i*(i - 1)) / 2)); for (ll j = 2 * i; j <= r; j += i) { ll t = j/i; ll val = ((t*(t - 1)) / 2); val = (val * i); dp[j] = min(dp[j], (val + dp[i])); } } ll ti = 1; for (ll i = 0; i <= r - l; i++) { ll v1 = ti%mod, v2 = dp[i+l]%mod; ll v3 = (v1*v2) % mod; ans = (ans + v3) % mod; ti = (ti*t) % mod; } printf("%I64d\n", ans%mod); return 0; }
수정본
파일 열기
#include <stdio.h> #include <stack> #include <map> #include <string.h> #include <string> #include <iostream> #include <algorithm> #include <iomanip> #include <math.h> #include <vector> #include <set> #include <queue> #include <functional> using namespace std; #define ll long long #define mp make_pair #define pb push_back //#define ld long double const double sn = 1e-6; ll mod = 1000000007; ll dp[5000005]; int t, l, r; int main() { scanf("%d %d %d", &t, &l, &r); ll ans = 0; for (int i = 2; i <= r; i++) { dp[i] = LLONG_MAX; } for (int i = 2; i <= r; i++) { dp[i] = min( dp[i], 1ll * i * (i - 1) / 2 ); for (int j = 2 * i; j <= r; j += i) { int t = j/i; ll val = 1ll * t * (t - 1) / 2; val = (val * i); dp[j] = min(dp[j], (val + dp[i])); } } ll ti = 1; for (int i = 0; i <= r - l; i++) { ll v1 = ti, v2 = dp[i+l]%mod; ll v3 = v1 * v2; ans = (ans + v3) % mod; ti = (ti*t) % mod; } printf("%I64d\n", ans%mod); return 0; }
비교하기