#include <cstdio>
int n, m, q[100010];
int main()
{
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);
while (m -- )
{
int x;
scanf("%d", &x);
int l = 0, r = n - 1;
while (l < r)
{
int mid = l + r >> 1;
if (q[mid] >= x) r = mid;
else l = mid + 1;
}
if (q[l] != x) printf("-1 -1\n");
else
{
printf("%d ", l);
int l = 0, r = n - 1;
while (l < r)
{
int mid = l + r + 1 >> 1;
if (q[mid] <= x) l = mid;
else r = mid - 1;
}
printf("%d\n", l);
}
}
return 0
}
我在哪里
#include<bits/stdc++.h>
using namespace std;
string s;
string re_string(int l,int r)
{
string t;
for(int i=l;i<=r;i++)
{
t+=s[i];
}
return t;
}
int main()
{
int n;
cin>>n>>s;
for(int len=1;len<s.size();len++)
{
int flag=1;
map<string,int> mp;
for(int p=0;p+len-1<s.size();p++)
{
int l=p,r=p+len-1;
string t=re_string(l,r);
//cout<<t<<endl;
if(mp[t]!=0)
{
flag=0;
break;
}
else mp[t]++;
}
if(flag==1)
{
cout<<len<<endl;
return 0;
}
}
}
分巧克力
#include<bits/stdc++.h>
using namespace std;
int h[100010],w[100010];
int n,k;
int fuc(int x)
{
int sum=0;
for(int i=0;i<n;i++)
{
sum+=(h[i]/x)*(w[i]/x);
}
return sum;
}
int main()
{
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>h[i]>>w[i];
}
int l=1,r=1e5;
while(r>l)
{
int mid=(l+r+1)/2;
if(fuc(mid)>=k)
{
l=mid;
}
else
{
r=mid-1;
}
}
cout<<l<<endl;
}