티스토리 뷰

반응형

https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=391 

 

Softeer

앗 잠깐만요! 소프티어 이용 중 이 페이지를 보신다면 브라우저의 쿠키 때문인 경우가 많습니다. 접속한 브라우저의 쿠키 삭제(Ctrl + Shift + Del) 후 브라우저를 닫고 다시 접속해주세요. 그래도 안

softeer.ai

[문제]

수퍼바이러스가 숙주의 몸속에서 0.1초당 P배씩 증가한다.

 

처음에 수퍼바이러스 K마리가 있었다면 N초 후에는 총 몇 마리의 수퍼바이러스로 불어날까?

N초 동안 죽는 수퍼바이러스는 없다고 가정한다.

 

수퍼바이러스는 일반 바이러스에 비해서 훨씬 오래 생존할 수 있기 때문에 N이 매우 클 수 있다.

 

[풀이]

import java.util.*;
import java.io.*;


public class Main
{
	static long K; // 1<= K <= 100000000
	static long P; // 1<= P <= 100000000
	static long N; // 1<= N <= 10000000000000000
	static long RESULT;
	static int DIVIDE = 1000000007;
	
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		
		K = sc.nextLong();
		P = sc.nextLong();
		N = sc.nextLong();
		
		System.out.println((K * solve(10 * N)) % DIVIDE);
		
		sc.close();
	}
	
	private static long solve(long lTime)
	{
		if (lTime == 1)
			return P;
		
		RESULT = solve(lTime / 2);
		
		RESULT = (RESULT * RESULT) % DIVIDE;
		
		if (lTime % 2 == 1)
			RESULT = (RESULT * P) % DIVIDE;
		
		return RESULT;
		
	}
}
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함