• C++
  • 信奥 1300【0323】-数组的操作二

  • @ 2024-3-23 15:12:52

作业 第一题:转学生 image

第二题:身高排队 image

第三题:选拔

image

第四题:合并有序数组 image

第五题: image image

14 条评论

  • @ 2024-3-30 15:36:15
    using namespace std;
    const int N = 1e6+10;
    
    int main(){
    	int n;
    	cin>>n;
    	int a[100];
    	a[1]=1;
    	for(int i=2;i<=n;i++){
    		int k,p;
    		cin>>k>>p;
    		for(int j=1;j<=i-1;j++){
    			if(k==a[j]){
    				if(p==0){
    					for(int m=i-1;m>=j;m--){
    						a[m+1]=a[m];
    					}
    					a[j]=i;
    				}else{
    					for(int m=i-1;m>=j+1;m--){
    						a[m+1]=a[m];
    					}
    					a[j+1]=i;
    				}
    			}
    		}
    	}
    	for(int i=1;i<=n;i++){
    		cout<<a[i]<<" ";
    	}
    	return 0;
    }
    
    
    • @ 2024-3-30 15:35:29
      using namespace std;
      const int N = 1e6+10;
      
      int main(){
      	int n;
      	cin>>n;
      	int a[100];
      	a[1]=1; 
      	for(int i=2;i<=n;i++){
      		int k,p;
      		cin>>k>>p;
      		for(int j=1;j<=i-1;j++){
      			if(k==a[j]){
      				if(p==0){
      					for(int m=i-1;m>=j;m--){
      						a[m+1]=a[m];
      					}
      					a[j]=i;
      					
      				}else{
      					for(int m=i-1;m>=j+1;m--){
      						a[m+1]=a[m];
      					}
      					a[j+1]=i;
      				}
      			}
      		}
      	}
      	int m;
      	cin>>m;
      	for(int i=1;i<=m;i++){
      		int x,flag=0;
      		cin>>x;
      		for(int j=1;j<=n;j++){
      			if(x==a[j]){
      				flag = 1;
      				for(int k=j;k<=n-1;k++){
      					a[k]=a[k+1];
      				}
      			}
      		}
      		n-=flag;
      	}
      	for(int i=1;i<=n;i++){
      		cout<<a[i]<<" ";
      	}
      	return 0;
      }
      
      
      
      • @ 2024-3-30 15:21:47
        #include<bits/stdc++.h>
        using namespace std;
        const int N = 1e6+10;
        
        int main(){
        	int n;
        	cin>>n;
        	int a[100];
        	a[1]=1; 
        	for(int i=2;i<=n;i++){
        		int k,p;
        		cin>>k>>p;
        		for(int j=1;j<=i-1;j++){
        			if(k==a[j]){
        				if(p==0){
        					for(int m=i-1;m>=j;m--){
        						a[m+1]=a[m];
        					}
        					a[j]=i;
        					
        				}else{
        					for(int m=i-1;m>=j+1;m--){
        						a[m+1]=a[m];
        					}
        					a[j+1]=i;
        				}
        			}
        		}
        	}
        	int m;
        	cin>>m;
        	for(int i=1;i<=m;i++){
        		int x,flag=0;
        		cin>>x;
        		for(int j=1;j<=n;j++){
        			if(x==a[j]){
        				flag = 1;
        				for(int k=j;k<=n-1;k++){
        					a[k]=a[k+1];
        				}
        			}
        		}
        		n-=flag;
        	}
        	for(int i=1;i<=n;i++){
        		cout<<a[i]<<" ";
        	}
        	return 0;
        }
        
        
        • @ 2024-3-30 14:35:01

          image

          • @ 2024-3-30 14:34:29
            #include<bits/stdc++.h>
            using namespace std;
            const int N = 1e6+10;
            
            int main(){
            	int n;
            	cin>>n;
            	int a[100];
            	a[1]=1;
            	for(int i=2;i<=n;i++){
            		int k,p;
            		cin>>k>>p;
            		for(int j=1;j<=i-1;j++){
            			if(k==a[j]){
            				if(p==0){
            					for(int m=i-1;m>=j;m--){
            						a[m+1]=a[m];
            					}
            					a[j]=i;
            				}else{
            					for(int m=i-1;m>=j+1;m--){
            						a[m+1]=a[m];
            					}
            					a[j+1]=i;
            				}
            			}
            		}
            	}
            	for(int i=1;i<=n;i++){
            		cout<<a[i]<<" ";
            	}
            	return 0;
            }
            
            • @ 2024-3-30 14:17:12
              #include<bits/stdc++.h>
              using namespace std;
              const int N = 1e6+10;
              
              int main(){
              	int a[100],b[100],c[1000],n,m;
              	cin>>n;
              	for(int i=1;i<=n;i++)cin>>a[i];
              	cin>>m;
              	for(int i=1;i<=m;i++)cin>>b[i];
              	int aa=1,bb=1,cc=1,cnt=0;
              	while(aa>n&&bb>m){
              		if(aa>n){
              			c[cc]=b[bb];
              			cc++;
              			bb++;
              		}else if(bb>m){
              			c[cc]=a[aa];
              			cc++;
              			aa++;
              		}else if(a[aa]>b[bb]){
              			c[cc]=b[bb];
              			cc++;
              			bb++;
              		}else if(a[aa]==b[bb]){
              			c[cc]=b[bb];
              			cc++;
              			bb++;
              			aa++;
              			cnt++;
              		}else{
              			c[cc]=a[aa];
              			cc++;
              			aa++;
              		}
              	}
              	for(int i=1;i<=m+n-cnt;i++)cout<<c[i]<<" ";
              	return 0;
              }
              
              • @ 2024-3-30 14:04:01
                #include<bits/stdc++.h>
                using namespace std;
                const int N = 1e6+10;
                
                int main(){
                	int n,a[100],sum=0,cnt=0;
                	cin>>n;
                	for(int i=1;i<=n;i++){
                		cin>>a[i];
                		sum+=a[i];
                	}
                	for(int i=1;i<=n;i++){
                		if(a[i]>=sum*1.0/n){
                			cnt++;
                		}
                	}
                	cout<<cnt<<endl;
                	for(int i=1;i<=n;i++){
                		if(a[i]>=sum*1.0/n){
                			cout<<a[i]<<" ";
                		}
                	}
                	return 0;
                }
                
                • @ 2024-3-30 13:57:11

                  上周作业解答 排身高

                  #include<bits/stdc++.h>
                  using namespace std;
                  const int N = 1e6+10;
                  
                  int main(){
                  	int n,a[100];
                  	cin>>n;
                  	for(int i=1;i<=n;i++)cin>>a[i];
                  	int x;
                  	cin>>x;
                  	for(int i=1;i<=n;i++){
                  		if(x<a[i]){
                  			for(int j=n;j>=i;j--){
                  				a[j+1]=a[j];
                  			}
                  			a[i]=x;
                  			break;
                  		}
                  	}
                  	for(int i=1;i<=n+1;i++)cout<<a[i]<<" ";
                  	return 0;
                  }
                  
                  • @ 2024-3-30 13:44:26

                    image image image

                    • @ 2024-3-30 13:39:44

                      image

                      • @ 2024-3-30 13:37:41

                        转学生 image 身高排队 image 选拔 image 合并有序数组 image

                        • @ 2024-3-30 13:37:27

                          image

                          • @ 2024-3-30 13:35:00

                            image

                            • @ 2024-3-30 13:34:00

                              image 第三题 image 第二题 image 第一题

                              • 1