Long columns help

Non capisco perché il codice non funzioni, qualcuno mi può aiutare?

#include <bits/stdc++.h>

using namespace std;

ifstream in ("input.txt");
ofstream out ("output.txt");

int main(){
    
    int N;
    
    in >> N;
    
    int K;
    
    in >> K;
    
    int clms[N];
    
    int app = 0;
    
    int C = 0;
    
    int C2 = 10;
    
    for(int i = 0 ; i < N ; ++i){

        in >> clms[i];
        
        do{
            
            if(clms[i] < K){
                
                app += clms[i];
                
            }
                
            if(clms[i] >= K){
                
                C++;
                
                clms[i] -= K;
                
                C2--;
                
            }
            
        }while(clms[i] >= K && C2 > 0);
        
        C2 = 10;
        
    }
    
    out << C << app;
    
}
1 Mi Piace

Il primo errore è che stampi i due interi in output senza separarli da spazio.
Il secondo è che nel ciclo più interno (il do-while) continui a ciclare fin quando riesci a effettuare un taglio lungo K, senza poi preoccuparti che siano rimasti dei metri non usati.
Nel primo caso d’ esmpio è presente una colonna lunga 9 metri e quindi effetuando il primo taglio di 5 metri ne avanzano 4 che non permmettono di riciclare per verificare la condizione :

if(clms[i] < K){
    app += clms[i];                
}

Inoltre non hai prestato attenzione a un particolare cruciale del testo per ottenere il 100.

is also known that after ten cuts an old column cannotwithstand any more force and thus will not be cut further (but may still be used).

2 Mi Piace