XTU 1298 Position
http://202.197.224.59/exam/index.php/problem/exam_read/id/1298/exam_id/229
思路:
1.数据很水,其实可以暴力过(当然,说的是优雅的暴力);
2.可以推数学公式;
3.计算前缀和然后二分查找。
根据n的数据范围可知,数组开到1e5足够了:
((1+1e5)*1e5/2) > 1e9
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll ans[100005];
int main()
{
for(int i=1;i<=1e5;i++)
ans[i]=ans[i-1]+i;
int n;
while(cin>>n)
{
int pos = lower_bound(ans,ans+100000,n)-ans;
cout<<pos<<" "<<n-ans[pos-1]<<endl;
}
return 0;
}
XTU 1299 String
http://202.197.224.59/exam/index.php/problem/exam_read/id/1299/exam_id/229
思路:直接暴力模拟一下就好,送分题,注意每个样例之间要换行。
#include<bits/stdc++.h>
using namespace std;
int main()
{
char s[101],t[101];
while(scanf("%s",s)!=EOF){
int ca=1;
while(scanf("%s",t)!=EOF){
if(t[0]=='E')
{
printf("\n");
break;
}
else if(t[0]=='S')
{
int a,b;
char c[2];