Start: Jun, 28, 2019 08:42:00
2019杭州师范大学第一届程序设计竞赛新生赛
End: Jun, 28, 2019 11:42:00
Time elapsed:
Time remaining:

Problem_ID: C
Result: Accepted
Time: 87ms
Memory: 3304kB
In contest: 1276

#include <cstdio>
#include <cstring>
#include <string>
#include <map>
#include <queue>
#include <stack>
#include <algorithm> 
#include <iostream>
#include <cmath>
//#include <process.h>
using namespace std;
const int inf = 0x3f3f3f3f;
#define ll long long
#define pii 3.1415926897932384626
int i, j, k;
int n, m;
double a[100010],b[100010];
int main() {
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
		scanf("%lf",&a[i]);
	if(m>=5){
		for(i=0;i<n;i++){
	    printf("100");
		if(i!=n-1)
		    printf(" ");
		else
			printf("\n");
		}
	}
	else{
	memset(b,0,sizeof b);
	for(i=0;i<n;i++){
		int res;
		int s=m;
		double kk;
		double ans=a[i];
		while(s--){
			int t=(int)ans;
			if(b[t]!=0)
				ans=b[t];
			else{
			kk=sqrt(ans);
			res=(int)(kk+0.99);
			res*=10;
			ans=(double)res;
			b[t]=ans;
			}
		}
	    printf("%.0f",ans);
		if(i!=n-1)
		    printf(" ");
		else
			printf("\n");
	}
	}
//	system("pause");
	return 0;
}