为了让管理更好处理@wlt0716 抄题解的事,我附上代码再发一遍: @mrsrz @chen_zhe @yyy2015c01 @Anguei 举报@wlt0716 抄袭题解 代码1:
#include<bits/stdc++.h>
using namespace std;
stack <pair<int,int> > s1;
char s[200];
int bj[200],n;
int main()
{
scanf("%s",s);
memset(bj,-1,sizeof(bj));
int i,j;
n=strlen(s);
for(i=0;i<n;i++)
{
char t=s[i];
if(t=='('||t=='[') s1.push(make_pair(i,t=='('));
if(t==')'||t==']') if(s1.empty()||s1.top().second!=(t==')')) bj[i]=(t==')');
else s1.pop();
}
while(!s1.empty()) bj[s1.top().first]=s1.top().second,s1.pop();
for(i=0;i<n;i++)
{
if(bj[i]==-1) printf("%c",s[i]);
else if(bj[i]==1) printf("()");
else printf("[]");
}
return 0;
}
代码2:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int a[100100],b[100100];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1; i<=n; i++)
{
cin>>a[i];
}
for(int i=1; i<=m; i++)
{
cin>>b[i];
}
sort(a+1,a+n+1);
int ans=0;
for(int i=1; i<=m; i++)
{
int l=0,r=n+1;
while(l<r)
{
int mid=(l+r)/2;
if(a[mid]<=b[i])
{
l=mid+1;
}
else
{
r=mid;
}
}
if(b[i]<=a[1])
{
ans+=a[1]-b[i];
}
else
{
ans+=min(abs(a[l-1]-b[i]),abs(a[l]-b[i]));
}
}
cout<<ans;
return 0;
}
代码3:
#include <iostream>
#include <string.h>
using namespace std;
int n,x,y;
char a[3000][3000];
void copy(int &u, int &v) {
int i, j;
for (i = 1; i <= u; i++)
for (j = 1; j <= v; j++)
a[i][v + j] = a[u + i][(v / 2) + j] = a[i][j];
u*= 2;
v*= 2;
}
int main(){
memset(a, ' ', sizeof(a));
a[1][1] = a[2][2] = '\\';
a[1][2] = a[1][3] = '_';
a[1][4] = a[2][3] = '/';
x = 2; y = 4;
cin >> n;
for (int i = 1; i < n; i++) copy(x, y);
for (int i = x; i > 0; i--) {
for (int j = y; j > 0; j--) cout << a[i][j];
cout << endl;
}
return 0;
}
此人曾经棕名过,却屡教不改,这只是其中三篇而已,希望管理员能把@wlt0716 封号。