11 条题解

  • 4
    @ 2024-11-29 21:12:45
    // <queue> -*- C++ -*-
    
    // Copyright (C) 2001-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /*
     *
     * Copyright (c) 1994
     * Hewlett-Packard Company
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Hewlett-Packard Company makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     *
     *
     * Copyright (c) 1996,1997
     * Silicon Graphics Computer Systems, Inc.
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Silicon Graphics makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     */
    
    /** @file include/queue
     *  This is a Standard C++ Library header.
     */
    
    #ifndef _GLIBCXX_QUEUE
    #define _GLIBCXX_QUEUE 1
    
    
    #include <deque>
    #include <vector>
    #include <bits/stl_heap.h>
    #include <bits/stl_function.h>
    #include <bits/stl_queue.h>
    
    #endif /* _GLIBCXX_QUEUE */
    // <stack> -*- C++ -*-
    
    // Copyright (C) 2001-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /*
     *
     * Copyright (c) 1994
     * Hewlett-Packard Company
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Hewlett-Packard Company makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     *
     *
     * Copyright (c) 1996,1997
     * Silicon Graphics Computer Systems, Inc.
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Silicon Graphics makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     */
    
    /** @file include/stack
     *  This is a Standard C++ Library header.
     */
    
    #ifndef _GLIBCXX_STACK
    #define _GLIBCXX_STACK 1
    
    
    #include <deque>
    #include <bits/stl_stack.h>
    
    #endif /* _GLIBCXX_STACK */
    // Standard iostream objects -*- C++ -*-
    
    // Copyright (C) 1997-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /** @file include/iostream
     *  This is a Standard C++ Library header.
     */
    
    //
    // ISO C++ 14882: 27.3  Standard iostream objects
    //
    
    #ifndef _GLIBCXX_IOSTREAM
    #define _GLIBCXX_IOSTREAM 1
    
    
    #include <bits/c++config.h>
    #include <ostream>
    #include <istream>
    
    namespace std _GLIBCXX_VISIBILITY(default)
    {
    _GLIBCXX_BEGIN_NAMESPACE_VERSION
    
      /**
       *  @name Standard Stream Objects
       *
       *  The &lt;iostream&gt; header declares the eight <em>standard stream
       *  objects</em>.  For other declarations, see
       *  http://gcc.gnu.org/onlinedocs/libstdc++/manual/io.html
       *  and the @link iosfwd I/O forward declarations @endlink
       *
       *  They are required by default to cooperate with the global C
       *  library's @c FILE streams, and to be available during program
       *  startup and termination. For more information, see the section of the
       *  manual linked to above.
      */
      //@{
      extern istream cin;		/// Linked to standard input
      extern ostream cout;		/// Linked to standard output
      extern ostream cerr;		/// Linked to standard error (unbuffered)
      extern ostream clog;		/// Linked to standard error (buffered)
    
    #ifdef _GLIBCXX_USE_WCHAR_T
      extern wistream wcin;		/// Linked to standard input
      extern wostream wcout;	/// Linked to standard output
      extern wostream wcerr;	/// Linked to standard error (unbuffered)
      extern wostream wclog;	/// Linked to standard error (buffered)
    #endif
      //@}
    
      // For construction of filebuffers for cout, cin, cerr, clog et. al.
      static ios_base::Init __ioinit;
    
    _GLIBCXX_END_NAMESPACE_VERSION
    } // namespace
    
    #endif /* _GLIBCXX_IOSTREAM */
    // <vector> -*- C++ -*-
    
    // Copyright (C) 2001-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /*
     *
     * Copyright (c) 1994
     * Hewlett-Packard Company
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Hewlett-Packard Company makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     *
     *
     * Copyright (c) 1996
     * Silicon Graphics Computer Systems, Inc.
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Silicon Graphics makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     */
    
    /** @file include/vector
     *  This is a Standard C++ Library header.
     */
    
    #ifndef _GLIBCXX_VECTOR
    #define _GLIBCXX_VECTOR 1
    
    #pragma GCC system_header
    
    #include <bits/stl_algobase.h>
    #include <bits/allocator.h>
    #include <bits/stl_construct.h>
    #include <bits/stl_uninitialized.h>
    #include <bits/stl_vector.h>
    #include <bits/stl_bvector.h> 
    #include <bits/range_access.h>
    
    #ifndef _GLIBCXX_EXPORT_TEMPLATE
    # include <bits/vector.tcc>
    #endif
    
    #ifdef _GLIBCXX_DEBUG
    # include <debug/vector>
    #endif
    
    #ifdef _GLIBCXX_PROFILE
    # include <profile/vector>
    #endif
    
    #endif /* _GLIBCXX_VECTOR */
    // Standard stream manipulators -*- C++ -*-
    
    // Copyright (C) 1997-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /** @file include/iomanip
     *  This is a Standard C++ Library header.
     */
    
    //
    // ISO C++ 14882: 27.6.3  Standard manipulators
    //
    
    #ifndef _GLIBCXX_IOMANIP
    #define _GLIBCXX_IOMANIP 1
    
    
    #include <bits/c++config.h>
    #include <iosfwd>
    #include <bits/ios_base.h>
    
    #if __cplusplus >= 201103L
    #include <locale>
    #if __cplusplus > 201103L
    #include <sstream> // used in quoted.
    #endif
    #endif
    
    namespace std _GLIBCXX_VISIBILITY(default)
    {
    _GLIBCXX_BEGIN_NAMESPACE_VERSION
    
      // [27.6.3] standard manipulators
      // Also see DR 183.
    
      struct _Resetiosflags { ios_base::fmtflags _M_mask; };
    
      /**
       *  @brief  Manipulator for @c setf.
       *  @param  __mask  A format flags mask.
       *
       *  Sent to a stream object, this manipulator resets the specified flags,
       *  via @e stream.setf(0,__mask).
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f)
        { 
          __is.setf(ios_base::fmtflags(0), __f._M_mask); 
          return __is; 
        }
    
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f)
        { 
          __os.setf(ios_base::fmtflags(0), __f._M_mask); 
          return __os; 
        }
    
    
      struct _Setiosflags { ios_base::fmtflags _M_mask; };
    
      /**
       *  @brief  Manipulator for @c setf.
       *  @param  __mask  A format flags mask.
       *
       *  Sent to a stream object, this manipulator sets the format flags
       *  to @a __mask.
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f)
        { 
          __is.setf(__f._M_mask); 
          return __is; 
        }
    
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Setiosflags __f)
        { 
          __os.setf(__f._M_mask); 
          return __os; 
        }
    
    
      struct _Setbase { int _M_base; };
    
      /**
       *  @brief  Manipulator for @c setf.
       *  @param  __base  A numeric base.
       *
       *  Sent to a stream object, this manipulator changes the
       *  @c ios_base::basefield flags to @c oct, @c dec, or @c hex when @a base
       *  is 8, 10, or 16, accordingly, and to 0 if @a __base is any other value.
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f)
        {
          __is.setf(__f._M_base ==  8 ? ios_base::oct : 
    		__f._M_base == 10 ? ios_base::dec : 
    		__f._M_base == 16 ? ios_base::hex : 
    		ios_base::fmtflags(0), ios_base::basefield);
          return __is; 
        }
      
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f)
        {
          __os.setf(__f._M_base ==  8 ? ios_base::oct : 
    		__f._M_base == 10 ? ios_base::dec : 
    		__f._M_base == 16 ? ios_base::hex : 
    		ios_base::fmtflags(0), ios_base::basefield);
          return __os; 
        }
      
    
      template<typename _CharT>
        struct _Setfill { _CharT _M_c; };
    
      /**
       *  @brief  Manipulator for @c fill.
       *  @param  __c  The new fill character.
       *
       *  Sent to a stream object, this manipulator calls @c fill(__c) for that
       *  object.
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f)
        { 
          __is.fill(__f._M_c); 
          return __is; 
        }
    
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f)
        { 
          __os.fill(__f._M_c); 
          return __os; 
        }
    
    
      struct _Setprecision { int _M_n; };
    
      /**
       *  @brief  Manipulator for @c precision.
       *  @param  __n  The new precision.
       *
       *  Sent to a stream object, this manipulator calls @c precision(__n) for
       *  that object.
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f)
        { 
          __is.precision(__f._M_n); 
          return __is; 
        }
    
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f)
        { 
          __os.precision(__f._M_n); 
          return __os; 
        }
    
    
      struct _Setw { int _M_n; };
    
      /**
       *  @brief  Manipulator for @c width.
       *  @param  __n  The new width.
       *
       *  Sent to a stream object, this manipulator calls @c width(__n) for
       *  that object.
      */
    
      template<typename _CharT, typename _Traits>
        inline basic_istream<_CharT, _Traits>& 
        operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f)
        {
          __is.width(__f._M_n);
          return __is; 
        }
    
      template<typename _CharT, typename _Traits>
        inline basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f)
        {
          __os.width(__f._M_n);
          return __os; 
        }
    
    #if __cplusplus >= 201103L
      
      template<typename _MoneyT>
        struct _Get_money { _MoneyT& _M_mon; bool _M_intl; };
    
      /**
       *  @brief  Extended manipulator for extracting money.
       *  @param  __mon  Either long double or a specialization of @c basic_string.
       *  @param  __intl A bool indicating whether international format 
       *                 is to be used.
       *
       *  Sent to a stream object, this manipulator extracts @a __mon.
      */
      template<typename _MoneyT>
        inline _Get_money<_MoneyT>
        get_money(_MoneyT& __mon, bool __intl = false)
        { return { __mon, __intl }; }
    
      template<typename _CharT, typename _Traits, typename _MoneyT>
        basic_istream<_CharT, _Traits>&
        operator>>(basic_istream<_CharT, _Traits>& __is, _Get_money<_MoneyT> __f)
        {
          typename basic_istream<_CharT, _Traits>::sentry __cerb(__is, false);
          if (__cerb)
    	{
    	  ios_base::iostate __err = ios_base::goodbit;
    	  __try
    	    {
    	      typedef istreambuf_iterator<_CharT, _Traits>   _Iter;
    	      typedef money_get<_CharT, _Iter>               _MoneyGet;
    
    	      const _MoneyGet& __mg = use_facet<_MoneyGet>(__is.getloc());
    	      __mg.get(_Iter(__is.rdbuf()), _Iter(), __f._M_intl,
    		       __is, __err, __f._M_mon);
    	    }
    	  __catch(__cxxabiv1::__forced_unwind&)
    	    {
    	      __is._M_setstate(ios_base::badbit);
    	      __throw_exception_again;
    	    }
    	  __catch(...)
    	    { __is._M_setstate(ios_base::badbit); }
    	  if (__err)
    	    __is.setstate(__err);
    	}
          return __is; 
        }
    
    
      template<typename _MoneyT>
        struct _Put_money { const _MoneyT& _M_mon; bool _M_intl; };
    
      /**
       *  @brief  Extended manipulator for inserting money.
       *  @param  __mon  Either long double or a specialization of @c basic_string.
       *  @param  __intl A bool indicating whether international format 
       *                 is to be used.
       *
       *  Sent to a stream object, this manipulator inserts @a __mon.
      */
      template<typename _MoneyT>
        inline _Put_money<_MoneyT>
        put_money(const _MoneyT& __mon, bool __intl = false)
        { return { __mon, __intl }; }
    
      template<typename _CharT, typename _Traits, typename _MoneyT>
        basic_ostream<_CharT, _Traits>& 
        operator<<(basic_ostream<_CharT, _Traits>& __os, _Put_money<_MoneyT> __f)
        {
          typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os);
          if (__cerb)
    	{
    	  ios_base::iostate __err = ios_base::goodbit;
    	  __try
    	    {
    	      typedef ostreambuf_iterator<_CharT, _Traits>   _Iter;
    	      typedef money_put<_CharT, _Iter>               _MoneyPut;
    
    	      const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc());
    	      if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os,
    			   __os.fill(), __f._M_mon).failed())
    		__err |= ios_base::badbit;
    	    }
    	  __catch(__cxxabiv1::__forced_unwind&)
    	    {
    	      __os._M_setstate(ios_base::badbit);
    	      __throw_exception_again;
    	    }
    	  __catch(...)
    	    { __os._M_setstate(ios_base::badbit); }
    	  if (__err)
    	    __os.setstate(__err);
    	}
          return __os; 
        }
    
    #if __cplusplus > 201103L
    
    #define __cpp_lib_quoted_string_io 201304
    
    _GLIBCXX_END_NAMESPACE_VERSION
      namespace __detail {
      _GLIBCXX_BEGIN_NAMESPACE_VERSION
    
        /**
         * @brief Struct for delimited strings.
         */
        template<typename _String, typename _CharT>
          struct _Quoted_string
          {
    	static_assert(is_reference<_String>::value
    		   || is_pointer<_String>::value,
    		      "String type must be pointer or reference");
    
    	_Quoted_string(_String __str, _CharT __del, _CharT __esc)
    	: _M_string(__str), _M_delim{__del}, _M_escape{__esc}
    	{ }
    
    	_Quoted_string&
    	operator=(_Quoted_string&) = delete;
    
    	_String _M_string;
    	_CharT _M_delim;
    	_CharT _M_escape;
          };
    
        /**
         * @brief Inserter for quoted strings.
         *
         *  _GLIBCXX_RESOLVE_LIB_DEFECTS
         *  DR 2344 quoted()'s interaction with padding is unclear
         */
        template<typename _CharT, typename _Traits>
          auto&
          operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    		 const _Quoted_string<const _CharT*, _CharT>& __str)
          {
    	std::basic_ostringstream<_CharT, _Traits> __ostr;
    	__ostr << __str._M_delim;
    	for (const _CharT* __c = __str._M_string; *__c; ++__c)
    	  {
    	    if (*__c == __str._M_delim || *__c == __str._M_escape)
    	      __ostr << __str._M_escape;
    	    __ostr << *__c;
    	  }
    	__ostr << __str._M_delim;
    
    	return __os << __ostr.str();
          }
    
        /**
         * @brief Inserter for quoted strings.
         *
         *  _GLIBCXX_RESOLVE_LIB_DEFECTS
         *  DR 2344 quoted()'s interaction with padding is unclear
         */
        template<typename _CharT, typename _Traits, typename _String>
          auto&
          operator<<(std::basic_ostream<_CharT, _Traits>& __os,
    		 const _Quoted_string<_String, _CharT>& __str)
          {
    	std::basic_ostringstream<_CharT, _Traits> __ostr;
    	__ostr << __str._M_delim;
    	for (auto& __c : __str._M_string)
    	  {
    	    if (__c == __str._M_delim || __c == __str._M_escape)
    	      __ostr << __str._M_escape;
    	    __ostr << __c;
    	  }
    	__ostr << __str._M_delim;
    
    	return __os << __ostr.str();
          }
    
        /**
         * @brief Extractor for delimited strings.
         *        The left and right delimiters can be different.
         */
        template<typename _CharT, typename _Traits, typename _Alloc>
          auto&
          operator>>(std::basic_istream<_CharT, _Traits>& __is,
    		 const _Quoted_string<basic_string<_CharT, _Traits, _Alloc>&,
    				      _CharT>& __str)
          {
    	_CharT __c;
    	__is >> __c;
    	if (!__is.good())
    	  return __is;
    	if (__c != __str._M_delim)
    	  {
    	    __is.unget();
    	    __is >> __str._M_string;
    	    return __is;
    	  }
    	__str._M_string.clear();
    	std::ios_base::fmtflags __flags
    	  = __is.flags(__is.flags() & ~std::ios_base::skipws);
    	do
    	  {
    	    __is >> __c;
    	    if (!__is.good())
    	      break;
    	    if (__c == __str._M_escape)
    	      {
    		__is >> __c;
    		if (!__is.good())
    		  break;
    	      }
    	    else if (__c == __str._M_delim)
    	      break;
    	    __str._M_string += __c;
    	  }
    	while (true);
    	__is.setf(__flags);
    
    	return __is;
          }
      _GLIBCXX_END_NAMESPACE_VERSION
      } // namespace __detail
    _GLIBCXX_BEGIN_NAMESPACE_VERSION
    
      /**
       * @brief Manipulator for quoted strings.
       * @param __str    String to quote.
       * @param __delim  Character to quote string with.
       * @param __escape Escape character to escape itself or quote character.
       */
      template<typename _CharT>
        inline auto
        quoted(const _CharT* __string,
    	   _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\'))
        {
          return __detail::_Quoted_string<const _CharT*, _CharT>(__string, __delim,
    							     __escape);
        }
    
      template<typename _CharT, typename _Traits, typename _Alloc>
        inline auto
        quoted(const basic_string<_CharT, _Traits, _Alloc>& __string,
    	   _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\'))
        {
          return __detail::_Quoted_string<
    			const basic_string<_CharT, _Traits, _Alloc>&, _CharT>(
    				__string, __delim, __escape);
        }
    
      template<typename _CharT, typename _Traits, typename _Alloc>
        inline auto
        quoted(basic_string<_CharT, _Traits, _Alloc>& __string,
    	   _CharT __delim = _CharT('"'), _CharT __escape = _CharT('\\'))
        {
          return __detail::_Quoted_string<
    			basic_string<_CharT, _Traits, _Alloc>&, _CharT>(
    				__string, __delim, __escape);
        }
    
    #endif // __cplusplus > 201103L
    
    #endif // __cplusplus >= 201103L
    
      // Inhibit implicit instantiations for required instantiations,
      // which are defined via explicit instantiations elsewhere.  
      // NB:  This syntax is a GNU extension.
    #if _GLIBCXX_EXTERN_TEMPLATE
      extern template ostream& operator<<(ostream&, _Setfill<char>);
      extern template ostream& operator<<(ostream&, _Setiosflags);
      extern template ostream& operator<<(ostream&, _Resetiosflags);
      extern template ostream& operator<<(ostream&, _Setbase);
      extern template ostream& operator<<(ostream&, _Setprecision);
      extern template ostream& operator<<(ostream&, _Setw);
      extern template istream& operator>>(istream&, _Setfill<char>);
      extern template istream& operator>>(istream&, _Setiosflags);
      extern template istream& operator>>(istream&, _Resetiosflags);
      extern template istream& operator>>(istream&, _Setbase);
      extern template istream& operator>>(istream&, _Setprecision);
      extern template istream& operator>>(istream&, _Setw);
    
    #ifdef _GLIBCXX_USE_WCHAR_T
      extern template wostream& operator<<(wostream&, _Setfill<wchar_t>);
      extern template wostream& operator<<(wostream&, _Setiosflags);
      extern template wostream& operator<<(wostream&, _Resetiosflags);
      extern template wostream& operator<<(wostream&, _Setbase);
      extern template wostream& operator<<(wostream&, _Setprecision);
      extern template wostream& operator<<(wostream&, _Setw);
      extern template wistream& operator>>(wistream&, _Setfill<wchar_t>);
      extern template wistream& operator>>(wistream&, _Setiosflags);
      extern template wistream& operator>>(wistream&, _Resetiosflags);
      extern template wistream& operator>>(wistream&, _Setbase);
      extern template wistream& operator>>(wistream&, _Setprecision);
      extern template wistream& operator>>(wistream&, _Setw);
    #endif
    #endif
    
    _GLIBCXX_END_NAMESPACE_VERSION
    } // namespace
    
    #endif /* _GLIBCXX_IOMANIP */
    // <algorithm> -*- C++ -*-
    
    // Copyright (C) 2001-2014 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 3, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // Under Section 7 of GPL version 3, you are granted additional
    // permissions described in the GCC Runtime Library Exception, version
    // 3.1, as published by the Free Software Foundation.
    
    // You should have received a copy of the GNU General Public License and
    // a copy of the GCC Runtime Library Exception along with this program;
    // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
    // <http://www.gnu.org/licenses/>.
    
    /*
     *
     * Copyright (c) 1994
     * Hewlett-Packard Company
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Hewlett-Packard Company makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     *
     *
     * Copyright (c) 1996,1997
     * Silicon Graphics Computer Systems, Inc.
     *
     * Permission to use, copy, modify, distribute and sell this software
     * and its documentation for any purpose is hereby granted without fee,
     * provided that the above copyright notice appear in all copies and
     * that both that copyright notice and this permission notice appear
     * in supporting documentation.  Silicon Graphics makes no
     * representations about the suitability of this software for any
     * purpose.  It is provided "as is" without express or implied warranty.
     */
    
    /** @file include/algorithm
     *  This is a Standard C++ Library header.
     */
    
    #ifndef _GLIBCXX_ALGORITHM
    #define _GLIBCXX_ALGORITHM 1
    
    
    #include <utility> // UK-300.
    #include <bits/stl_algobase.h>
    #include <bits/stl_algo.h>
    
    #ifdef _GLIBCXX_PARALLEL
    # include <parallel/algorithm>
    #endif
    
    #endif /* _GLIBCXX_ALGORITHM */
    #pragma GCC optimize(3)
    #pragma GCC target("avx")
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    #pragma GCC optimize("-fgcse")
    #pragma GCC optimize("-fgcse-lm")
    #pragma GCC optimize("-fipa-sra")
    #pragma GCC optimize("-ftree-pre")
    #pragma GCC optimize("-ftree-vrp")
    #pragma GCC optimize("-fpeephole2")
    #pragma GCC optimize("-ffast-math")
    #pragma GCC optimize("-fsched-spec")
    #pragma GCC optimize("unroll-loops")
    #pragma GCC optimize("-falign-jumps")
    #pragma GCC optimize("-falign-loops")
    #pragma GCC optimize("-falign-labels")
    #pragma GCC optimize("-fdevirtualize")
    #pragma GCC optimize("-fcaller-saves")
    #pragma GCC optimize("-fcrossjumping")
    #pragma GCC optimize("-fthread-jumps")
    #pragma GCC optimize("-funroll-loops")
    #pragma GCC optimize("-fwhole-program")
    #pragma GCC optimize("-freorder-blocks")
    #pragma GCC optimize("-fschedule-insns")
    #pragma GCC optimize("inline-functions")
    #pragma GCC optimize("-ftree-tail-merge")
    #pragma GCC optimize("-fschedule-insns2")
    #pragma GCC optimize("-fstrict-aliasing")
    #pragma GCC optimize("-fstrict-overflow")
    #pragma GCC optimize("-falign-functions")
    #pragma GCC optimize("-fcse-skip-blocks")
    #pragma GCC optimize("-fcse-follow-jumps")
    #pragma GCC optimize("-fsched-interblock")
    #pragma GCC optimize("-fpartial-inlining")
    #pragma GCC optimize("no-stack-protector")
    #pragma GCC optimize("-freorder-functions")
    #pragma GCC optimize("-findirect-inlining")
    #pragma GCC optimize("-fhoist-adjacent-loads")
    #pragma GCC optimize("-frerun-cse-after-loop")
    #pragma GCC optimize("inline-small-functions")
    #pragma GCC optimize("-finline-small-functions")
    #pragma GCC optimize("-ftree-switch-conversion")
    #pragma GCC optimize("-foptimize-sibling-calls")
    #pragma GCC optimize("-fexpensive-optimizations")
    #pragma GCC optimize("-funsafe-loop-optimizations")
    #pragma GCC optimize("inline-functions-called-once")
    #pragma GCC optimize("-fdelete-null-pointer-checks")
    #include <queue>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define int long long
    const int N = 3e7 + 10;
    const int INF = 0xfffffffffffffff;
    int n, a, b, c, a1, a2, a3;
    double ans;
    signed main(){
    	scanf("%lld\n", &n);
    	for(int i = 1; i <= n; i++){
    		scanf("%lld %lld %lld", &a, &b, &c);
    		a1 += a;
    		a2 += b;
    		a3 += c;
    	}
    	printf("%lld %lld %lld %lld\n", a1, a2, a3, a1 + a2 + a3);
    	return 0;
    }
    
    • 4
      @ 2024-11-29 18:35:58
      using namespace std;
      int main()
      {
      	long long n,a,b,c,x=0,y=0,z=0,s;
      	cin>>n;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>a>>b>>c;
      		x+=a;
      		y+=b;
      		z+=c;
      	}
      	s=x+y+z;
      	cout<<x<<" "<<y<<" "<<z<<" "<<s<<" "; 
      }
      
      
      • 3
        @ 2024-11-29 18:41:53
        using namespace std;
        int main()
        {
        	long long n,a,b,c,A=0,B=0,C=0,s;
        	cin>>n;
        	for(int i=1;i<=n;i++)
        	{
        		cin>>a>>b>>c;
        		A+=a;
        		B+=b;
        		C+=c;
        	}
        	s=A+B+C;
        	cout<<A<<" "<<B<<" "<<C<<" "<<s<<" "; 
        	return 0;
        }
        

        有标志认证,属三无产品,请大家放心食用

        • 1
          @ 2025-8-19 11:28:53

          天啊!!到底是谁不会这道题??!!

          好吧,水题一道

          灰常贱胆!!看我不把他整成AC代码!!!

          #include<bits/stdc++.h>
          using namespace std;
          int n,j,y,t;
          int main(){
              cin>>n;
              int c1=0,c2=0,c3=0;
              for(int i=1;i<=n;i++){
                  cin>>j>>y>>t;
                  c1+=j;
                  c2+=y;
                  c3+=t;
              }
              int c4=c1+c2+c3;
              cout<<c1<<' '<<c2<<' '<<c3<<' '<<c4;
              return 0;
          }
          
          

          原来是我不会(笑)

          禁止发疯!!

          • 0
            @ 2022-12-15 20:03:01

            太简单了!

            #include<iostream>
            using namespace std;
            int main(){
            	long long n,a,b,c,A=0,B=0,C=0,s;
            	cin>>n;
            	for(int i=1;i<=n;i++){
            		cin>>a>>b>>c;
            		A+=a;
            		B+=b;
            		C+=c;
            	}
            	s=A+B+C;
            	cout<<A<<" "<<B<<" "<<C<<" "<<s<<" "; 
            }
            
            • -1
              @ 2025-3-21 20:08:27

              using namespace std; int main() { long long n,a,b,c,A=0,B=0,C=0,s; cin>>n; for(int i=1;i<=n;i++) { cin>>a>>b>>c; A+=a; B+=b; C+=c; } s=A+B+C; cout<<A<<" "<<B<<" "<<C<<" "<<s<<" "; return 0; }

              • -1
                @ 2025-2-28 20:02:19

                using namespace std; int main() { long long n,a,b,c,A=0,B=0,C=0,s; cin>>n; for(int i=1;i<=n;i++) { cin>>a>>b>>c; A+=a; B+=b; C+=c; } s=A+B+C; cout<<A<<" "<<B<<" "<<C<<" "<<s<<" "; return 0; }

                • -1
                  @ 2024-6-12 20:07:35
                  #include<cstdio>
                  #include<cstdlib>
                  #include<cmath>
                  #include<cctype>
                  #include<cstring>
                  #include<string>
                  #include<vector>
                  #include<set>
                  #include<stack>
                  #include<queue>
                  #include<iostream>
                  #include<iomanip>
                  #include<ctime>
                  #include<algorithm>
                  #include<map>
                  using namespace std;
                  int main(){
                      int n,j=0,y=0,t=0,sum=0;
                      cin>>n;
                      for(int i=1;i<=n;i++){
                          int a,b,c;
                          cin>>a>>b>>c;
                          j+=a;
                          y+=b;
                          t+=c;
                      }
                      sum=sum+j+y+t;
                      printf("%d %d %d %d",j,y,t,sum);
                  }
                  
                  • @ 2024-6-13 14:09:40

                    我把你的抄了,你信吗????????????

                • -2
                  @ 2024-6-12 20:22:38
                  #include<iostream>
                  using namespace std;
                  int main()
                  {
                  	long long n,sum=0,usm=0,msu=0,abc=0;
                  	cin>>n;
                  	for(int i=1;i<=n;i++)
                  	{
                  		long long x,y,z;
                  		cin>>x>>y>>z;
                  		sum=sum+x;
                  		usm=usm+y;
                  		msu=msu+z;
                  	}
                  	abc=sum+usm+msu;
                  	cout<<sum<<" "<<usm<<" "<<msu<<" "<<abc;
                  }
                  
                  • @ 2024-6-13 14:09:33

                    我把你的抄了,你信吗????????????

                • -2
                  @ 2022-7-5 16:56:26

                  #include<stdio.h> #include using namespace std; int main() { int n,a,b,c,sum=0,num=0,ans=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a>>b>>c; sum+=a; num+=b; ans+=c; } cout<<sum<<" "<<num<<" "<<ans<<" "; cout<<sum+num+ans<<endl; }

                  • -3
                    @ 2022-10-20 20:38:26
                    #include<stdio.h>
                    #include<iostream>
                    using namespace std;
                    int main()
                    {
                       int n,a,b,c,sum=0,num=0,ans=0;
                       cin>>n;
                       for(int i=1;i<=n;i++)
                        {
                           cin>>a>>b>>c;
                           sum+=a;num+=b; ans+=c;
                        }
                        cout<<sum<<" "<<num<<" "<<ans<<" ";
                        cout<<sum+num+ans<<endl;
                    }
                    
                    • 1

                    信息

                    ID
                    894
                    时间
                    1000ms
                    内存
                    128MiB
                    难度
                    5
                    标签
                    递交数
                    643
                    已通过
                    271
                    上传者